【发布时间】:2020-10-23 14:16:03
【问题描述】:
我正在使用 NativeScript-Vue (7.0) 并使用此代码初始化 Firebase:
firebase.init({
onMessageReceivedCallback: (message) => {
console.log("[Firebase] onMessageReceivedCallback:", { message });
},
onPushTokenReceivedCallback: (token) => {
console.log("[Firebase] onPushTokenReceivedCallback:", { token });
},
})
.then(() => console.log("Firebase initialised."));
在 Android 上一切正常,但在 iOS 上(在模拟器和真实设备上)发生了两件事:
-
onPushTokenReceivedCallback被解雇两次(使用相同的令牌) -
即使应用程序在前台,
onMessageReceivedCallback也不会被触发。
我正在使用 FCM Dashboard 发送通知,尝试了 Test 和 Campaign 自定义数据通知。它仅适用于 Android。
我了解在 iOS 中实现后台推送通知存在复杂性,但在应用运行时在前台,为什么它没有收到消息?
我正在使用这个firebase plugin,除了Enabling push support in Xcode 之外,我关注了文档中的所有内容,因为显然此设置已从 Xcode 中免费获得苹果开发者帐户。但我确实按照here 所述手动添加了权利。
接收消息回叫需要一些特殊权限还是我错过了什么?
【问题讨论】:
-
运气好吗?我遇到了类似的问题,除了我发现两个回调都被调用了两次
-
@NickWiltshire 是的,我解决了这个问题。我的问题是 APNs 没有配置 FCM。阅读:firebase.google.com/docs/cloud-messaging/ios/certs |此外,为了生成这些证书/密钥,我升级到付费 Apple Developer 帐户。生成 AUTH 密钥后,您需要前往
Project Settings>Cloud Messaging上传/设置密钥。另外,你需要一个真正的 iOS 设备(不是模拟器)来发送后台推送。
标签: ios firebase nativescript