FCM Android推送通知已停止工作-需要帮助解决问题



我现在在这里添加了一个更具体的问题,仅针对令牌中的消息:Android的FCM推送通知已停止为消息直接到令牌工作

原始帖子:

这些过去有效,现在不行了。它适用于iOS。不幸的是,我无法确定他们停止工作的确切日期,但如果FCM分析准确的话,它可能最后一次工作是在2022年7月25日(5天前(。然而,它确实显示了一些";打开";之后。

我从firebase云函数向主题或令牌发送通知。我一直在使用令牌进行测试,尽管两者都不起作用。

这是我得到的错误:

Unhandled error { Error: The registration token is not a valid FCM registration token
at FirebaseMessagingError.FirebaseError [as constructor] (/workspace/node_modules/firebase-admin/lib/utils/error.js:44:28)
at FirebaseMessagingError.PrefixedFirebaseError [as constructor] (/workspace/node_modules/firebase-admin/lib/utils/error.js:90:28)
at new FirebaseMessagingError (/workspace/node_modules/firebase-admin/lib/utils/error.js:256:16)
at Function.FirebaseMessagingError.fromServerError (/workspace/node_modules/firebase-admin/lib/utils/error.js:289:16)
at Object.createFirebaseError (/workspace/node_modules/firebase-admin/lib/messaging/messaging-errors-internal.js:35:47)
at /workspace/node_modules/firebase-admin/lib/messaging/messaging-api-request-internal.js:79:51
at process._tickCallback (internal/process/next_tick.js:68:7)
errorInfo:
{ code: 'messaging/invalid-argument',
message:
'The registration token is not a valid FCM registration token' },
codePrefix: 'messaging' } 

我从FCM控制台发送了一个新的活动到一个特定的主题,这起到了作用。因此,对我来说,这意味着问题出在云功能上,但我并不100%相信这一点。更新:我刚刚尝试从FCM控制台向一个失败的特定令牌发送一条测试消息,但这不起作用。

我尝试过的其他事情:

  1. 将云功能恢复到以前有效的版本(手动编辑((先删除功能(
  2. 尝试从云函数向主题发送消息。不起作用。没有错误
  3. 已尝试从云函数向令牌发送消息。不起作用。请参阅上面的错误
  4. 尝试从FCM控制台向主题发送消息。工作
  5. 尝试从FCM控制台向令牌发送消息。不起作用
  6. 根据中的最新版本检查了google-service.json文件防火基地项目。看起来不错。注意,之前我意外发布了一个带有来自开发项目的google-service.json文件确信这是错误的原因,但在修复后问题并没有得到解决

云功能代码:

const notification: admin.messaging.Notification = {
title: title,
body: body
}
const message: admin.messaging.Message = {
notification,
token,
android:{
notification:{
sound: 'default',
icon: 'push_logo',
color: '#000000',
}
},
apns:{
payload:{
aps: {
sound: 'default'
}
}
}
}
return admin.messaging().send(message)

创建:

{ notification: { title: 'test', body: 'test' },
token:
'eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCJ9.eyJhcHBJZCI6IjE6MTAxMzMxMzU1NjY5NDphbmRyb2lkOmQyODI0NGY1MWIzYTkyYTMwN2Y5NzciLCJleHAiOjE2NTk3NTExNTAsImZpZCI6ImV3YkF0c1psUm5xZ2Mzb0tQRWs0VnYiLCJwcm9qZWN0TnVtYmVyIjoxMDEzMzEzNTU2Njk0fQ.AB2LPV8wRQIgbdIAgIU76ziJc84g5gcNFNzFyid2xeDTcAywjecKFKoCIQD1KkflpXmfOSvp28XVmTtm4JtWaaVcycQRMXtKSNUM0Q',
android:
{ notification: { sound: 'default', icon: 'push_logo', color: '#000000' } },
apns: { payload: { aps: [Object] } } } 

更新:

该主题现在通过从云函数直接发送到令牌来从云函数工作,或者FCM控制台不工作。自上次测试以来,我没有做任何代码更改。

原来是由于电容器2变为电容器3。需要使用:

PushNotifications.addListener('registration', async ({ value }) => {
let token = value // Push token for Android
// Get FCM token instead the APN one returned by Capacitor
if (Capacitor.getPlatform() === 'ios') {
const { token: fcm_token } = await FCM.getToken()
token = fcm_token
}
// Work with FCM_TOKEN
})

请参见此处:https://github.com/capacitor-community/fcm/issues/99

相关内容

最新更新