【问题标题】:Android firebase firestore&functions pushNotification using fcm token errorAndroid firebase firestore&functions pushNotification using fcm token error
【发布时间】:2021-10-07 02:11:50
【问题描述】:

升级项目后,我一整天都在研究 firebase 功能, 我想要的是将通知推送到firestore文档用户的令牌,

这是我的数据库结构

EX:当集合访问者文档发生变化时,将消息推送到文档内的token

exports.vsUp = functions.firestore.document("Visitor/{docId}").onUpdate(
    (snapshot, context) => {
        admin.firestore().collection("Visitor/{docId}/{token}/{docId}").get().then(
            result => {
                var registrationTokens = [];
                result.docs.forEach(
                    tokenDocument => {
                        registrationTokens.push(tokenDocument.data().token);
                    }
                );
                admin.messaging().sendMulticast({
                    tokens: registrationTokens,
                    notification: {
                        title: snapshot.data().visitor_name,
                        body: snapshot.data().visitor_status
                    }
                })
            }
        )
    }

这是我现在的functions.js代码,但它不工作,

如何才能实现我想做的事情? 谢谢>3

【问题讨论】:

    标签: node.js google-cloud-firestore google-cloud-functions firebase-cloud-messaging


    【解决方案1】:

    这行不行:

    admin.firestore().collection("Visitor/{docId}/{token}/{docId}").get()
    

    这里的{token} 位只是解释为文字字符串。而且由于没有具有该名称的集合/文档,因此您不会得到任何结果。

    如果你想为请求中指定的用户加载所有令牌,它看起来像这样:

    admin.firestore().collection(`Visitor/${context.params.docId}/token`).get()
    

    所以你可以看到:

    • 这使用` 来标记字符串,以便它被JavaScript 解释为模板。您无需在第一行执行此操作,因为在您部署 Cloud Function 时,Firebase 会自行解释该行。
    • 路径现在由三部分组成,因此它指向一个集合,而不是代码中的四部分,这意味着它指向一个文档。
    • 我们使用${context.params.docId} 来获取触发我们的云函数的docId 的值。

    请注意,消息未传递到设备的原因可能还有很多,但这些绝对是您的代码未从 Firestore 读取任何内容的部分原因。

    【讨论】:

    • 我尝试了一些简单的功能,但发现它无法使用令牌发送任何消息,
    • 它显示错误:进程退出,进程代码为 16。
    • 未处理的拒绝
    • 是的,如前所述:您的代码可能存在更多问题,并且肯定还有代码之外的原因,您可能无法收到通知。这些只是第一个向我跳出来的。
    • 谢谢我会发现更多关于这个的文件
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-10-05
    • 1970-01-01
    • 2018-11-25
    • 2018-10-16
    • 1970-01-01
    • 2021-01-19
    • 1970-01-01
    相关资源
    最近更新 更多