|
|
- using Microsoft.Maui.LifecycleEvents;
- using Plugin.Firebase.Auth;
- using Plugin.Firebase.Bundled.Platforms.Android;
- using Plugin.Firebase.Bundled.Shared;
- using Plugin.Firebase.Crashlytics;
-
- namespace firebase;
-
- public static class MauiProgram
- {
- public static MauiApp CreateMauiApp()
- {
- var builder = MauiApp.CreateBuilder();
- builder
- .UseMauiApp<App>()
- .RegisterFirebaseServices()
- .ConfigureFonts(fonts =>
- {
- fonts.AddFont("OpenSans-Regular.ttf", "OpenSansRegular");
- fonts.AddFont("OpenSans-Semibold.ttf", "OpenSansSemibold");
- });
-
- return builder.Build();
- }
-
- private static MauiAppBuilder RegisterFirebaseServices(this MauiAppBuilder builder)
- {
- builder.ConfigureLifecycleEvents(events => {
- #if IOS
- events.AddiOS(iOS => iOS.FinishedLaunching((app, launchOptions) => {
- CrossFirebase.Initialize(CreateCrossFirebaseSettings());
- return false;
- }));
- #else
- events.AddAndroid(android => android.OnCreate((activity, _) =>
- CrossFirebase.Initialize(activity, CreateCrossFirebaseSettings())));
- CrossFirebaseCrashlytics.Current.SetCrashlyticsCollectionEnabled(true);
- #endif
- });
-
- builder.Services.AddSingleton(_ => CrossFirebaseAuth.Current);
- return builder;
- }
-
- private static CrossFirebaseSettings CreateCrossFirebaseSettings()
- {
- return new CrossFirebaseSettings(
- isAuthEnabled: true,
- isCloudMessagingEnabled: true,
- isAnalyticsEnabled: true);
- }
- }
|