我想整理向Firestore添加文档时发送推送通知。我正在使用node.js的firebase站点的示例中的代码。
const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp();
var message = {
notification: {
title: 'title!',
body: 'body'
},
topic: "all"
};
exports.createRequest = functions.firestore
.document('Requests/{RequestsId}')
.onCreate((snap, context) => {
console.log('We have a new request');
// Send a message to devices subscribed to the provided topic.
admin.messaging().send(message)
.then((response) => {
console.log('Successfully sent message:', response);
}).catch((error) => {
console.log('Error sending message:', error);
});
return 0;
});
当我尝试部署时,我会遇到错误:
每个((应返回一个值或投掷诺言/始终回收",为字符串
.then((response) => {
更改以下内容:
admin.messaging().send(message)
.then((response) => {
console.log('Successfully sent message:', response);
}).catch((error) => {
console.log('Error sending message:', error);
});
return 0;
});
进入这个:
return admin.messaging().send(message)
.then((response) => {
console.log('Successfully sent message:', response);
return null;
}).catch((error) => {
console.log('Error sending message:', error);
});
});
您需要正确终止功能,因此您可以避免过度运行的功能过多或无限循环的功能。
您可以使用以下方法终止您的功能:
通过返回JavaScript Promise来解决不同步处理的功能(也称为"背景函数"(。
用
res.redirect()
,res.send()
或res.end()
终止HTTP功能。用
return;
语句终止同步函数。