我的代码没有任何错误,但是没有在firebase node.js中发送通知?

时间:2019-12-10 12:32:35

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

我已经创建了一个index.js文件来推送通知,但是它不起作用,也不会引发任何错误。

在云功能的日志中,它没有给我任何错误!

并且我已经使用console.log来打印文档是否不存在但无法打印的信息。

我正在使用Flutter应用,并且使用过firebase_messaging插件。

并且令牌是正确的,那是什么问题?

我的代码:

const functions = require('firebase-functions');

const admin = require('firebase-admin');


admin.initializeApp(functions.config().firebase);


exports.OnLikePost = functions.firestore.document('posts/{postID}/likes/{likedUserID}').onCreate((snapshot, context) => {


    const postID = context.params.postID;


    const postsCollecRef = admin.firestore().doc('posts/' + postID);

    console.log("here");

    return postsCollecRef.get()
        .then(querySnapshot => {
            const promises = [];
            const writerID = querySnapshot.data().writerID;
                promises.push(admin.firestore().doc(`profile/${writerID}`).get());

            return Promise.all(promises);
        })
        .then(results => {

            const tokens = [];
            results.forEach(doc => {
                if (doc.exists) {
                    tokens.push(doc.data().tokenID);
                } else {
                    console.log("else");
                }
            });


            const payload = {
                "notification": {
                    "title": "your post has get a like !",
                    "body": "see it now !",
                    "sound": "default",
                },
                "data": {
                    "sendername": "your post has get a like !",
                    "message": "see it now !",
                }
            }

            return admin.messaging().sendToDevice(tokens, payload)

        })
        .catch((err) => {
            console.log(err);
            console.log("err");
            return null;
        });

});

0 个答案:

没有答案