【发布时间】:2020-03-24 04:02:51
【问题描述】:
我想自动实现推送通知,我使用了 javascript (node.js) 但我收到了这个错误
Function returned undefined, expected Promise or value
我不是 node js 开发者,我是 Flutter 开发者,我不知道什么是 promise。
这是我的代码:
const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp(functions.config().firebase);
var notificationMessageData;
exports.fcmTester = functions.firestore.document('posts/{postID}').onCreate((snapshot , context) => {
notificationMessageData = snapshot.data();
admin.firestore().collection('pushTokens').get().then(async (snapshot) => {
var tokens = [];
if (snapshot.empty) {
console.log('No Devices');
} else {
for (var token of snapshot.docs) {
tokens.push(token.data().tokenID);
}
var payload = {
"notification": {
"title": "from" + notificationMessageData.writer,
"body": "from" + notificationMessageData.name,
"sound": "default"
},
"data": {
"sendername": notificationMessageData.writer,
"message": notificationMessageData.name
}
}
return await admin.messaging().sendToDevice(tokens , payload).then((response) => {
console.log('nice');
}).catch((err) => {
console.log(err);
})
}
})
})
一切正常,我上传它没有任何问题,但是当将文档添加到帖子集合时,它会在日志中输出上述错误。
我创建了一个用户注册表单,我已经注册了用户并将他们的令牌 ID 放入一个名为 pushTokens 的集合中,然后为该集合中的每个用户发送通知,但这不起作用。
【问题讨论】:
标签: node.js firebase firebase-cloud-messaging google-cloud-functions firebase-admin