Hi @Anonymous
got the solution for Android and iOS is pending .
below solution for android regarding how to pass items to firebase.
/// <summary>
/// LogEvent
/// </summary>
/// <param name="eventId"></param>
/// <param name="parameters"></param>
/// <param name="items"></param>
public void LogEvent(string eventId, IDictionary<string, string> parameters, List<Constants.FirebaseClassData> items)
{
try
{
Task.Run(() =>
{
var fireBaseAnalytics = FirebaseAnalytics.GetInstance(CrossCurrentActivity.Current.AppContext);
if (parameters == null)
{
fireBaseAnalytics.LogEvent(eventId, null);
return;
}
var bundle = new Bundle();
foreach (var item in parameters)
{
switch (item.Key)
{
case "currency":
bundle.PutString(FirebaseAnalytics.Param.Currency, item.Value);
break;
case "value":
bundle.PutDouble(FirebaseAnalytics.Param.Value, Convert.ToDouble(item.Value));
break;
case "shipping":
bundle.PutDouble(FirebaseAnalytics.Param.Shipping, Convert.ToDouble(item.Value));
break;
case "tax":
bundle.PutDouble(FirebaseAnalytics.Param.Tax, Convert.ToDouble(item.Value));
break;
case "coupon":
bundle.PutString(FirebaseAnalytics.Param.Coupon, item.Value);
break;
default:
bundle.PutString(item.Key, item.Value);
break;
}
}
if (items != null && items.Count > 0)
{
List<Bundle> paracebleArray = new List<Bundle>();
foreach (var headerItem in items)
{
foreach (var childItem in headerItem.KeyValues)
{
Bundle bundleItem = new Bundle();
foreach (var innerChildItem in childItem)
{
switch (innerChildItem.Key)
{
case "price":
bundleItem.PutDouble(FirebaseAnalytics.Param.Price, Convert.ToDouble(innerChildItem.Value));
break;
case "quantity":
bundleItem.PutInt(FirebaseAnalytics.Param.Quantity, Convert.ToInt32(innerChildItem.Value));
break;
case "item_id":
bundleItem.PutString(FirebaseAnalytics.Param.ItemId, innerChildItem.Value);
break;
case "item_name":
bundleItem.PutString(FirebaseAnalytics.Param.ItemName, innerChildItem.Value);
break;
case "discount":
bundle.PutDouble(FirebaseAnalytics.Param.Discount, Convert.ToDouble(innerChildItem.Value));
break;
default:
bundleItem.PutString(innerChildItem.Key, innerChildItem.Value);
break;
}
}
paracebleArray.Add(bundleItem);
}
}
if (paracebleArray != null && paracebleArray.Count > 0)
bundle.PutParcelableArray(FirebaseAnalytics.Param.Items, paracebleArray.ToArray());
}
fireBaseAnalytics.LogEvent(eventId, bundle);
});
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
}
}