【发布时间】:2021-07-17 14:20:04
【问题描述】:
我收到此错误: 提供给 sendToDevice() 的注册令牌必须是非空字符串或非空数组。 在 FirebaseMessagingError.FirebaseError [作为构造函数] (/workspace/node_modules/firebase-admin/lib/utils/error.js:44:28)
exports.mediZim = functions.firestore.document("users/{user}/responses/{pharmacy}")
.onCreate((change, context) => {
const myData = change.data();
const tokens = [];
fstore.collection("pharmacies").doc(myData.uid).collection("userTokens").get().then((snap) => {
return snap.forEach((element) => {
tokens.push(element.data().token);
});
});
return fcm.sendToDevice(tokens, {
data: {
title: "Medi-Zim",
body: change.data().message,
sound: "default",
},
});
});
在“users/{user}/responses/{pharmacy}”我有这个 Firestore Field uid available
我使用 uid 来获取另一个集合中的文档 ID,以便我可以获取输入到该文档的用户令牌。 l 然后send想要发送通知给tokens。 Error with eslint after trying answers 1 and 2 Another Try From answer 1
这是我从 Cloud Functions 得到的错误:
提供给 sendToDevice() 的注册令牌必须是非空字符串或非空数组。 在 FirebaseMessagingError.FirebaseError [作为构造函数] (/workspace/node_modules/firebase-admin/lib/utils/error.js:44:28)
【问题讨论】:
-
可以试试加
console.log(tokens.length)看看数组是否为空吗? -
@Dharmaraj 现在部署将很快回复您
-
@Dharmaraj Firebase 日志中没有显示任何内容
-
我已经发布了答案。有几个问题。请让我知道这是否有效。如果确实如此,那么您可以通过单击复选图标接受它,以便其他人知道问题已解决。否则,请分享更多疑问。
-
@Dharmaraj 我刚刚尝试了你的代码,
lint给了我以下错误,错误解析错误:意外令牌 => 这是在这一行.onCreate(async (change, context) => {
标签: javascript firebase google-cloud-firestore google-cloud-functions firebase-cloud-messaging