请在这里阅读:
情况:
Person A
想要向他所领导的许多主题发送通知,因此有一天他希望第二天将主题database
发送到主题math
,依此类推。
Person B
是另一位领导者,并希望这样做,向主题English
发送通知,第二天向French
发送通知。
主题包含为这些主题注册的各种设备。
这是数据库的一部分:
{
"Class" : {
"push_id_here" : {
"name" : "English",
"teachid" : "teacher_id_here"
},
"push_id_here1" : {
"name" : "math",
"teachid" : "teachers_id_here"
}
},
"messages" : {
"-KzuGjz90g8gAjgVG68O" : {
"message" : "bye",
"title" : "Good"
}
}
}
在应用程序中,就像这样,Person A
点击items
示例列表(点击英语),并且有一个英语内的学生列表,然后人员A必须发送一个通知该列表。
我尝试了什么:
const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp(functions.config().firebase);
exports.pushNotification =
functions.database.ref('/messages/{pushId}').onWrite( event => {
console.log('Push notification event triggered');
var valueObject = event.data.val();
//Create a notification
const payload = {
notification: {
title:valueObject.name,
body: valueObject.text,
sound: "default"
},
};
const options = {
priority: "high",
timeToLive: 60 * 60 * 24
};
return admin.messaging().sendToTopic("English", payload, options);
});
以上cloud functions
有效但只发送给English
。我不想在函数中写出主题的名称。我想要做的是,如果Person A
输入了注册到主题database
的学生列表,则会向这些人发送通知。如果Person A
输入了注册到主题Math
的学生列表,则会向这些人发送通知。如果Person B
输入了注册到主题french
的学生列表,则会向这些人发送通知等等。