如何以编程方式向多个用户发送通知?

时间:2019-03-18 16:35:18

标签: javascript firebase-cloud-messaging google-cloud-functions

因此,经过大量搜索,我来到了这里。我知道我们可以通过Firebase Cloud Functions做到这一点。因此,我从Javascript和Node.js开始。所以我写了这样的东西:

   'use-strict';

const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp(functions.config().firebase);

exports.sendNotification = functions.database.ref('/{teacherId}/{classId}/{notificationId}').onWrite((change, context)=>{
    const teacherId = context.params.teacherId;
    const classId = context.params.classId;
    const notificationId = context.params.notificationId;

    return admin.firestore().collection("Users").doc(teacherId).collection("Subjects").doc(classId).get().then(doc=>{
        const className = doc.data().Name;
        return admin.firestore().collection("Users").where(classId,"==","Added").get().then(queryResult=>{
            queryResult.forEach(documentSanpshot =>{
                const tokenId = documentSanpshot.data().token;
                const payload ={
                    notification: {
                        title : "New Announcement",
                        body : "Subject: "+className,
                        icon: "default"
                    }
                };
                return admin.messaging().sendToDevice(tokenId,payload);
            });
            return null;
        });
    });
});

现在,我完全是Javascript和Node(一天的经验)的新手。但是,我想要的是每当值更改或添加到数据库时都需要className。之后,该组(类)中的用户应收到通知。

我收到此警告:

warning  Avoid nesting promises

这是我应该担心的警告吗?使用此代码还可以吗?任何意见表示赞赏。

0 个答案:

没有答案