创建组时自动生成云功能



我的情况下最好的方法是什么?用户在我的应用程序中创建一个消息组。然后该组将获得自己的自动id。现在我想从firebase使用云功能来检查新消息,并做一个推送通知。

下面的代码检查是否创建了组并发送推送通知。但这只有在我知道生成的自动id并在下面的代码中手动发布时才有效。如何解决这个问题?我的应用程序应该为每个组创建自己的云功能吗?这不会太过分吗?或者我可以使用通配符吗?

const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp();
exports.Push = functions.database.ref('/placeID/theGeneratedIdComesHere/{messageID}/')
.onCreate((snapshot, context) => {

var nameUser = String(snapshot.val().userName)
var textUser = String(snapshot.val().userComment)
var topic = 'weather';
const payload = {
notification: {
title: nameUser,
body: textUser,
badge: '1',
sound: 'default'
}
};

admin.messaging().sendToTopic(topic,payload);
})

您可以在Cloud Function声明中将组ID作为参数:

exports.Push = functions.database.ref('/placeID/{groupID}/{messageID}/')

然后你可以在你的函数代码中访问组ID:

const groupID = context.params.groupID;

然后你可以在你的代码中使用这个值来满足这个特定组的需要。

最新更新