我有一个带有React Native Firebase的React Native应用程序,用于推送通知/云消息传递。 因此,通常一切都很好,但是iOS版本有一个问题。
问题是我收到的(n=1000
)FCM令牌有时有效且有效,有时我将const fcmToken = await messaging().getToken()
视为错误。
我的测试非常简单。我将一个版本上传到TestFlight。当我现在几次安装此版本的应用程序时,收到的FCM令牌有时有效,有时却无效。 相同的代码,相同的密钥/证书,相同的设备。
另外检查APNS令牌,这似乎是有效的,并且每次检查都可以正常工作。
NotRegistered
时设置了Firebase应用当令牌有时有效而有时无效时,可能出什么问题了?
任何提示都值得赞赏?
系统信息:
[FIRApp configure];
答案 0 :(得分:1)
fcm发送一个NotRegistered状态,因为如果您基于ios关闭应用程序,则fcm和应用程序的状态将断开连接。
因此,当通过执行getToken函数获得令牌值时,您将获得旧的令牌值,而不是获得新的刷新令牌。
因此,如果执行以下代码,然后使用刷新令牌值再次执行发布消息,则可以正常接收消息。
const getToken = async () => {
const oldToken = await messaging().getToken();
await messaging().deleteToken(String(${fcm_send_id}), '*');
const newToken = await messaging().getToken();
if (oldToken === newToken) {
console.log('not refresh')
} else {
return newToken;
}
};