Hi,
I am trying to get the Firebase Analytics works for my Xamarin Forms.
Here what I did:
**In Droid Project:
—————————————————
MainActivity.cs:
**
using System;
using Android.App;
using Android.Content;
using Android.Content.PM;
using Android.Runtime;
using Android.Views;
using Android.Widget;
using Android.OS;
using Com.OneSignal;
using Syncfusion.SfBusyIndicator.XForms.Droid;
using Syncfusion.ListView.XForms.Android;
using Syncfusion.SfPullToRefresh.XForms.Android;
using Syncfusion.SfNavigationDrawer.XForms.Droid;
using Firebase.Iid;
using Firebase.Analytics;
using Firebase.Crash;
namespace Eithar.Droid
{
[Activity(Label = "Eithar", Icon = "@drawable/icon", Theme = "@style/MyTheme", MainLauncher = true, ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation)]
public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsAppCompatActivity
{
FirebaseAnalytics firebaseAnalytics;
protected override void OnCreate(Bundle bundle)
{
TabLayoutResource = Resource.Layout.Tabbar;
ToolbarResource = Resource.Layout.Toolbar;
base.OnCreate(bundle);
global::Xamarin.Forms.Forms.Init(this, bundle);
// Obtain the FirebaseAnalytics instance.
firebaseAnalytics = FirebaseAnalytics.GetInstance(this);
LoadApplication(new App());
}
}
}
**FirebaseService.cs
**
using System;
using Android.Content;
using Xamarin.Forms;
using Firebase.Analytics;
using Firebase.Crash;
using Android.OS;
[assembly: Dependency(typeof(Eithar.Droid.FirebaseService))]
namespace Eithar.Droid
{
public class FirebaseService : IFirebaseService
{
FirebaseAnalytics firebaseAnalytics;
public void Track_App_Page(String PageNameToTrack)
{
firebaseAnalytics.SetCurrentScreen(new Android.App.Activity(), "HomePage", "main_screen");
}
}
}
**In PCL Project:
———————————————
IFirebaseService.cs
**
using System;
namespace Eithar
{
public interface IFirebaseService
{
void Track_App_Page(String PageNameToTrack);
}
}
FirebaseDependencyService.cs
using System;
using Xamarin.Forms;
namespace Eithar
{
public static class FirebaseDependencyService
{
public static void Track_App_Page(String PageNameToTrack)
{
DependencyService.Get<IFirebaseService>().Track_App_Page(PageNameToTrack);
}
}
}
Home.xaml.cs:
protected override void OnAppearing()
{
base.OnAppearing();
FirebaseDependencyService.Track_App_Page("HomePage");
}
google-services.json is already added to the project and the Build action is set to GoogleServicesJson
but my app crashes on appearing and it works back when I comment:
// FirebaseDependencyService.Track_App_Page("HomePage");
Where is the problem here please?
Thanks,
Jassim