当前位置: 首页 > 知识库问答 >
问题:

尝试在Firebase Cloud函数中使用Firebase Cloud消息发送推送通知时,未找到请求的实体

郎吉星
2023-03-14

我正在尝试使用以下代码通过FCM从Firebase Cloud函数发送多播通知:

const message = {
    tokens: recipients,
    notification: {
        title: title,
        body: body
    },
    data: {
        projectPartnerId: projectPartnerId
    }
};
return admin.messaging().sendMulticast(message);

而且没有任何推送通知被发送。每个响应都包含一个带有相同消息的错误:“未找到请求的实体”。

我在谷歌云控制台中启用了API(Firebase文档中没有提到,但显然这是必要的)。我不知道还能做什么。我能找到的所有其他问题都与HTTP API或遗留API有关。我使用的是Firebase Admin SDK的最新版本。

共有3个答案

冯嘉珍
2023-03-14

正如@user1123432所说,我只是做了如下事情:

try {

// Logic to send a push notification goes here

 catch (e: Exception) {
    logger.error("Firebase Notification Failed: ${e.message}")
     if (e is FirebaseMessagingException) {
        logger.info("Firebase Notification token for the user: ${user.userName}, errorCodeName: ${e.errorCode.name}, messagingErrorCodeName: ${e.messagingErrorCode.name}")
        if (e.errorCode.name == "INVALID_ARGUMENT" || e.errorCode.name == "NOT_FOUND" || e.messagingErrorCode.name == "UNREGISTERED") {
            myNotificationTokenRepo.clearTokenByUserId(user.uuid)
            logger.info("Deleted Firebase Notification token for the user: ${user.userName}")
        }
    }
}
曾泳
2023-03-14

我最近在为iOS应用设置推送通知时遇到了这个问题。我找到了一个成功的修复方法,通过这个答案,我跟踪了一个发布在GitHub线程上的修复方法。问题是在信息中。plistFirebaseAppDelegateProxyEnabled被设置为bool,而不是字符串,因此:

    <key>FirebaseAppDelegateProxyEnabled</key>
    </false>

变成

    <key>FirebaseAppDelegateProxyEnabled</key>
    <string>0</string>

GitHub的评论还描述了通过一篇中篇文章实现Flavors,并将Firebase/Messaging添加到Podfile,这与使用Flatter构建iOS应用程序有关。我的项目是用Flatter构建的,但我们不需要实现任何关于Flavors的内容,也不需要更新播客文件,因为它是由Flatter自己管理的。

夹谷星纬
2023-03-14

我知道了。显然,当我试图发送到的FCM令牌不再注册时,就会发生此错误,“消息传递/注册令牌未注册”错误代码证明了这一点。在这种情况下,我只需要从用户的令牌中删除这个令牌,然后使用它。

 类似资料:
  • 问题内容: 我想使用Java将“推送通知”消息发送到特定的iPhone设备。 我不知道该怎么做。 我对此进行了谷歌搜索,他们建议使用“ PayLoad”类,但不要从任何jar文件中获取此类。 请有人指导我通过Java将推送通知消息发送到iPhone吗? 问题答案: 使用JavaPNS。例如:

  • 我正在制作一个android应用程序,其中我使用firebase身份验证来验证用户,使用firestore来存储一些用户数据。我想让用户有一个设置,他们可以订阅推送通知。如果他们订阅,我希望我的应用程序定期向他们发送通知,比如每6小时一次。目前,我已经使用firebase控制台测试了推送通知,它看起来工作正常。以下是我到目前为止的< code > myfirebasemesagingservice

  • 我正在尝试使用Firebase云功能创建消息推送。以下是我的代码: 我得到以下错误: 错误:提供给sendToDevice()的注册令牌必须是非空字符串或非空数组。在FirebaseMessagingeror。FirebaseError[作为构造函数](/srv/node_modules/firebase admin/lib/utils/error.js:42:28)位于FirebaseMessa

  • 我正在尝试使用Postman通过云消息服务发送一次推送通知。 这是一个用于相同目的的工作命令,我将其用作参考。 到目前为止我所做的。。 1-适当设置标题 2-在Body,我使用 执行时,我返回

  • 我想使用firebase云消息将通知从我的应用程序发送到另一个应用程序。所以我使用这个方法retrieveFCMToken(forSenderID:senderid)来处理这个过程。我将以下代码添加到我的应用程序委托中: 这是我的应用程序代理: 我遵循这个场景:我有两个应用程序,分别是“A”和“B”。我想将通知从应用程序“A”发送到应用程序“B”。因此,我将应用程序A的发件人id放入应用程序B代理

  • 我为沙盒iOS设置了推送通知,它们曾经工作过,但由于某种原因目前不工作。这是来自云观察日志的错误AWS SNS: 这是我的发送代码(AWS Lambda调用此代码): Lambda方法的返回数据: 我已经将问题缩小到不与我的lambda方法关联,因为我试图发布到直接从SNS控制台创建的endpoint。我还想知道为什么这个旧的实现在过去,一个月或两个月前,仍然有效,而现在不再有效。我认为这可能与过