Shiny.NET
Firebase Messaging

|Area|Info| |---|---| |Description|| |Service|Shiny.Push.IPushManager |NuGet|| |Static Generated Class|

using Microsoft.Extensions.DependencyInjection;
using Shiny;

namespace YourNamespace
{
    public class YourShinyStartup : ShinyStartup
    {
        public override void ConfigureServices(IServiceCollection services, IPlatform platform)
        { 
            
<p>services.UseFirebaseMessaging&lt;Shiny.Push.IPushDelegate&gt;();
services.UseFirebaseMessaging 
        }
    }
}

Minimum Version: 8.0

Minimum Version: 10

AppDelegate

using System;
using Foundation;
using Xamarin.Forms.Platform.iOS;
using Shiny;

namespace YourIosApp { [Register("AppDelegate")] public partial class AppDelegate : FormsApplicationDelegate { public override bool FinishedLaunching(UIApplication app, NSDictionary options) { this.ShinyFinishedLaunching(new Samples.SampleStartup()); global::Xamarin.Forms.Forms.Init(); this.LoadApplication(new Samples.App()); } public override void RegisteredForRemoteNotifications(UIApplication application, NSData deviceToken) => this.ShinyRegisteredForRemoteNotifications(deviceToken); public override void FailedToRegisterForRemoteNotifications(UIApplication application, NSError error) => this.ShinyFailedToRegisterForRemoteNotifications(error); public override void DidReceiveRemoteNotification(UIApplication application, NSDictionary userInfo, Action<UIBackgroundFetchResult> completionHandler) => this.ShinyDidReceiveRemoteNotification(userInfo, completionHandler); } }

Info.plist

<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE plist PUBLIC " -//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>UIBackgroundModes</key>
    <array>
     <string>remote-notification</string>
    </array>
</dict>
</plist>

Entitlements.plist

<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE plist PUBLIC " -//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
   <key>aps-environment</key>
   <string>development OR production</string>
</dict>
</plist>

Android

Follow the exact same setup process as the native push provider

Please read the following Microsoft Document on how to setup firebase within your Android application.

iOS

Follow the exact same setup process as the native push provider with one addition

After setting up your iOS app within the firebase admin portal, add GoogleService-Info.plist to your iOS head project and mark it as a "BundleResource"