node.js中的消息传递问题



我想整理向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;语句终止同步函数。

相关内容

  • 没有找到相关文章

最新更新