函数中的Firebase消息传递错误

时间:2018-05-17 19:42:37

标签: firebase firebase-cloud-messaging google-cloud-functions

在我的项目中,我使用Firebase函数通过FCM发送消息。 我使用这个API:

admin.messaging().send()

最近并没有用于调用它的所有令牌,我收到了这个错误:

Error: Requested entity was not found.
at FirebaseMessagingError.Error (native)
at FirebaseMessagingError.FirebaseError [as constructor] (/user_code/node_modules/firebase-admin/lib/utils/error.js:39:28)
at FirebaseMessagingError.PrefixedFirebaseError [as constructor] (/user_code/node_modules/firebase-admin/lib/utils/error.js:85:28)
at new FirebaseMessagingError (/user_code/node_modules/firebase-admin/lib/utils/error.js:241:16)
at Function.FirebaseMessagingError.fromServerError (/user_code/node_modules/firebase-admin/lib/utils/error.js:271:16)
at /user_code/node_modules/firebase-admin/lib/messaging/messaging-api-request.js:140:50
at process._tickDomainCallback (internal/process/next_tick.js:135:7)

我该如何解决? 我确定前段时间它有效并且这些错误不是。
Firebase中的任何更改?

1 个答案:

答案 0 :(得分:1)

此错误表示您尝试发送通知的令牌不存在。

您必须在 try catch 块上添加您的发送代码,并根据错误,擦除(或使)您的基础上的令牌。

  try {
    ...
    sendYourNotification(token);
    ...

  } catch (error) {
    if (
      [
        'The registration token is not a valid FCM registration token',
        'Requested entity was not found.',
        'NotRegistered.'
      ].includes(error.message)
    ) {
      // invalidate current token
      // find the user and remove this token
    } else {
      // Log it, because is some really unexpected
    }
  }