首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >错误:消息传递/注册-令牌未注册

错误:消息传递/注册-令牌未注册
EN

Stack Overflow用户
提问于 2020-06-19 18:49:47
回答 1查看 4.4K关注 0票数 4

当我试图向Iphone物理设备发送通知时,会有人知道为什么会出现这个错误吗?

代码语言:javascript
运行
复制
Error sending message { Error: Requested entity was not found.
    at FirebaseMessagingError.FirebaseError [as constructor] (/srv/node_modules/firebase-admin/lib/utils/error.js:42:28)
    at FirebaseMessagingError.PrefixedFirebaseError [as constructor] (/srv/node_modules/firebase-admin/lib/utils/error.js:88:28)
at new FirebaseMessagingError (/srv/node_modules/firebase-admin/lib/utils/error.js:254:16)
    at Function.FirebaseMessagingError.fromServerError (/srv/node_modules/firebase-admin/lib/utils/error.js:287:16)
    at Object.createFirebaseError (/srv/node_modules/firebase-admin/lib/messaging/messaging-errors.js:34:47)
    at /srv/node_modules/firebase-admin/lib/messaging/messaging-api-request.js:76:42
    at <anonymous>
    at process._tickDomainCallback (internal/process/next_tick.js:229:7)
  errorInfo: 
   { code: 'messaging/registration-token-not-registered',
     message: 'Requested entity was not found.' },
  codePrefix: 'messaging' }

意思是我的登记令牌没有注册。在查看了firebase文档之后,我看到了:https://firebase.google.com/docs/cloud-messaging/send-message#admin_sdk_error_reference

消息传递/注册-令牌-未注册:

未注册所提供的注册令牌。以前有效的注册令牌可以基于多种原因被取消注册,包括:

  • 客户端应用程序从FCM
  • 取消注册客户端应用程序自动取消注册。(如果用户卸载应用程序,或者在iOS上,如果APNS反馈服务报告APNS令牌无效,则会发生这种情况。)
  • 注册令牌过期。(例如,Google可能决定刷新注册令牌,或者iOS设备的APNS令牌可能已过期)
  • 客户端应用程序已经更新,但新版本未配置为接收消息。

对于所有这些情况,请删除此注册令牌并停止使用它发送消息。

但是我觉得我已经满足了所有的需求(APNS已经配置好并添加到Firebase控制台)

(已在我的Apple developper帐户的证书、标识符和配置文件中创建)

我甚至添加了请求用户许可的代码(当我在我的设备上测试它时,它也能工作)

代码语言:javascript
运行
复制
  getIOSPermission() {
    _firebaseMessaging.requestNotificationPermissions(
        IosNotificationSettings(alert: true, badge: true, sound: true));
    _firebaseMessaging.onIosSettingsRegistered.listen((settings) {
      print("Settings registered:$settings");
    });
  }

  void requestIOSPermissions() {
    flutterLocalNotificationsPlugin
        .resolvePlatformSpecificImplementation<
            IOSFlutterLocalNotificationsPlugin>()
        ?.requestPermissions(
          alert: true,
          badge: true,
          sound: true,
        );
  }

if (Platform.isIOS) {
  getIOSPermission();
  requestIOSPermissions();
}
_firebaseMessaging.getToken().then((token) {
  print("Firebase Messaging Token: $token\n");
  usersRef
      .document(firebaseUser.uid)
      .updateData({"androidNotificationToken": token});
});

我还遵循了FCM包自述的关于IOS集成的所有步骤。https://pub.dev/packages/firebase_messaging

这里是我的AppDelegate.swift代码:

代码语言:javascript
运行
复制
import UIKit
import Flutter

@UIApplicationMain
@objc class AppDelegate: FlutterAppDelegate {
  override func application(
    _ application: UIApplication,
    didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
  ) -> Bool {
    if #available(iOS 10.0, *) {
      UNUserNotificationCenter.current().delegate = self as? UNUserNotificationCenterDelegate
    }
    GeneratedPluginRegistrant.register(with: self)
    return super.application(application, didFinishLaunchingWithOptions: launchOptions)
  }
}

知道我为什么还会犯这个错误吗?

Fcm日志:

PostMan日志:

BTW它在android上运行得很好

EN

回答 1

Stack Overflow用户

发布于 2021-05-14 14:25:02

当一直试图发送的FCM令牌不再注册时,这个错误就会发生,这是由"messaging/registration-token-not-registered"错误代码提供的。您可以尝试从用户的令牌中删除此令牌,并查看它是否有效。

票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62476783

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档