有人会问为什么当我尝试向 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' }
Run Code Online (Sandbox Code Playgroud)
它说我的注册令牌未注册。查看 firebase 文档后,我看到: https ://firebase.google.com/docs/cloud-messaging/send-message#admin_sdk_error_reference
消息传递/注册令牌未注册:
提供的注册令牌未注册。以前有效的注册令牌可能会因多种原因而被取消注册,包括:
对于所有这些情况,请删除此注册令牌并停止使用它发送消息。
但我觉得我已经满足了所有要求(APNS …
apn apple-push-notifications ios flutter firebase-cloud-messaging
当应用程序处于后台并收到通知时,我试图让我的 onBackgroundMessage 执行,但它不执行 myBackgroundMessageHandler。
我做了在可选处理后台消息的文档中写的所有内容,但它仍然不能像我想要的那样工作,当我在应用程序处于后台时收到通知时,我得到的是一个没有数据的通知(没有应用程序图标没有图像,只有标题和正文。顺便说一句,当应用程序不在后台时它运行良好
这是我的代码:
AndroidManifest.xml
<application
android:name=".Application"
Run Code Online (Sandbox Code Playgroud)
索引.js
message = {
android: {
notification: { click_action: 'FLUTTER_NOTIFICATION_CLICK',}
},
token: androidNotificationToken,
data: {
activityFeedItemId:activityFeedItemId,
userReceivingNotificationId: userId,
userActivatingNotificationPhotoUrl: activityFeedItem.userProfileImg,
notificationType: activityFeedItem.type,
body : body
}
};
Run Code Online (Sandbox Code Playgroud)
构建等级
dependencies {
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
implementation 'com.google.firebase:firebase-analytics:17.2.2'
implementation 'com.android.support:multidex:1.0.3'
implementation 'com.google.firebase:firebase-messaging:20.1.7'
}
apply plugin: 'com.google.gms.google-services'
Run Code Online (Sandbox Code Playgroud)
主活动.java
package com.yimerah.ijn_amen;
import androidx.annotation.NonNull;
import io.flutter.embedding.android.FlutterActivity;
import io.flutter.embedding.engine.FlutterEngine;
import io.flutter.plugins.GeneratedPluginRegistrant;
public class MainActivity extends FlutterActivity {
@Override
public void configureFlutterEngine(@NonNull FlutterEngine flutterEngine) {
GeneratedPluginRegistrant.registerWith(flutterEngine); …Run Code Online (Sandbox Code Playgroud) 我在为 IOS 构建时收到这些消息,它成功但 IOS 通知不起作用,我收到 FCM 未注册的消息/注册令牌,所以我认为这篇文章可能与此错误有关。
它说我的注册令牌未注册。在查看 firebase 文档后,我看到:https : //firebase.google.com/docs/cloud-messaging/send-message#admin_sdk_error_reference
消息/注册令牌未注册:
提供的注册令牌未注册。以前有效的注册令牌可能因多种原因被取消注册,包括:
客户端应用程序从 FCM 自行取消注册客户端应用程序已自动取消注册。(如果用户卸载应用程序,或者在 iOS 上,如果 APNS 反馈服务报告 APNS 令牌无效,就会发生这种情况。)注册令牌已过期。(例如,Google 可能决定刷新注册令牌,或者 iOS 设备的 APNS 令牌可能已过期。)客户端应用程序已更新,但新版本未配置为接收消息。对于所有这些情况,请删除此注册令牌并停止使用它来发送消息。
但我觉得我已经满足了所有要求(APNS 已经配置并添加到 Firebase 控制台中)
?? /Users/builder/programs/flutter/.pub-cache/hosted/pub.dartlang.org/firebase_messaging-6.0.16/ios/Classes/FLTFirebaseMessagingPlugin.m:195:43: 'FIRMessagingRemoteMessage' is deprecated: FCM direct channel is deprecated, please use APNs for downstream message handling. [-Wdeprecated-declarations]
- (void)applicationReceivedRemoteMessage:(FIRMessagingRemoteMessage *)remoteMessage {
^
?? /Users/builder/programs/flutter/.pub-cache/hosted/pub.dartlang.org/firebase_messaging-6.0.16/ios/Classes/FLTFirebaseMessagingPlugin.m:307:24: 'FIRMessagingRemoteMessage' is deprecated: FCM direct channel is deprecated, please use APNs for downstream message handling. [-Wdeprecated-declarations]
didReceiveMessage:(FIRMessagingRemoteMessage *)remoteMessage {
^
?? /Users/builder/programs/flutter/.pub-cache/hosted/pub.dartlang.org/firebase_messaging-6.0.16/ios/Classes/FLTFirebaseMessagingPlugin.m:141:30: …Run Code Online (Sandbox Code Playgroud)