当我试图向Iphone物理设备发送通知时,会有人知道为什么会出现这个错误吗?
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
消息传递/注册-令牌-未注册:
未注册所提供的注册令牌。以前有效的注册令牌可以基于多种原因被取消注册,包括:
。
对于所有这些情况,请删除此注册令牌并停止使用它发送消息。
但是我觉得我已经满足了所有的需求(APNS已经配置好并添加到Firebase控制台)
(已在我的Apple developper帐户的证书、标识符和配置文件中创建)
我甚至添加了请求用户许可的代码(当我在我的设备上测试它时,它也能工作)
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代码:
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上运行得很好
发布于 2021-05-14 14:25:02
当一直试图发送的FCM令牌不再注册时,这个错误就会发生,这是由"messaging/registration-token-not-registered"
错误代码提供的。您可以尝试从用户的令牌中删除此令牌,并查看它是否有效。
https://stackoverflow.com/questions/62476783
复制相似问题