发送推送通知时出现“错误”:“ InvalidRegistration”

Arv*_*iya 8 xamarin.ios ios xamarin xamarin.forms firebase-cloud-messaging

我正在使用FirebasePushNotificationPlugin中实现FCM推送通知 Xamarin.Forms。在iOS项目中,AppDelegateRegisteredForRemoteNotifications方法调用deviceToken生成时,但是当我发送token由邮递员生成的通知时,出现错误。

{“ multicast_id”:8631208504861228784,“ success”:0,“ failure”:1,1,“ canonical_ids”:0,“ results”:[{“ error”:“ InvalidRegistration”}]}

这是我AppDelegate这里得到的代码:

public override bool FinishedLaunching(UIApplication app, NSDictionary options)
{
    global::Xamarin.Forms.Forms.Init();
    LoadApplication(new App());

    FirebasePushNotificationManager.Initialize(options, new NotificationUserCategory[]
    {
        new NotificationUserCategory("message",new List<NotificationUserAction> {
            new NotificationUserAction("Reply","Reply",NotificationActionType.Foreground)
        }),
        new NotificationUserCategory("request",new List<NotificationUserAction> {
            new NotificationUserAction("Accept","Accept"),
            new NotificationUserAction("Reject","Reject",NotificationActionType.Destructive)
        })
    });

    return base.FinishedLaunching(app, options);
}

public override void RegisteredForRemoteNotifications(UIApplication application, NSData deviceToken)
{
    FirebasePushNotificationManager.DidRegisterRemoteNotifications(deviceToken);
    Console.WriteLine("Token- - - :  "+deviceToken);
}

public override void FailedToRegisterForRemoteNotifications(UIApplication application, NSError error)
{
    FirebasePushNotificationManager.RemoteNotificationRegistrationFailed(error);
}

public override void DidReceiveRemoteNotification(UIApplication application, NSDictionary userInfo, Action<UIBackgroundFetchResult> completionHandler)
{
    FirebasePushNotificationManager.DidReceiveMessage(userInfo);
    System.Console.WriteLine(userInfo);
    completionHandler(UIBackgroundFetchResult.NewData);
}
Run Code Online (Sandbox Code Playgroud)

object发送样本通知时邮递员中的数据

{ 
 "to":"79f64b43339859a329a935f7a3e417ecc1599fbb5d6935afbooa3b4291c07fa7", 
 "notification" : {
 "body" : "New task",
 "content_available" : true,
 "priority" : "high",
 "color":"Page1",
 "title":"Announcement"
 },
 "data" : {
 "color":"Page1",
 "title":"title",
 "content_available" : true,
 "body" : "New Announcement ad"

}
}
Run Code Online (Sandbox Code Playgroud)

邮递员的尸体

在此处输入图片说明

这些是Visual Studio中的置备配置文件设置

在此处输入图片说明

我该如何解决这个问题?

tul*_*dev 5

我对 Xamarin 不熟悉。但我经常与 FCM 合作。

我认为你得到了错误的令牌。使用deviceToken不适用于来自 FCM 的推送通知。我做了一个搜索,也许你必须从

var fcmToken = FirebaseInstanceId.Instance.Token;

更多详细信息: https://learn.microsoft.com/en-us/xamarin/android/data-cloud/google-messaging/remote-notifications-with-fcm ?tabs=macos