52 lines
1.6 KiB
C#
52 lines
1.6 KiB
C#
|
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);
|
|||
|
}
|
|||
|
}
|