посмотрите на эту ссылку.
уйста, прочитайте здесь:
Ситуация:
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
Например (нажимает на английский), и есть список студентов, которые находятся на английском языке, затем Лицо А должно отправить уведомление в этот список.
Что я пробовал:
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
этим людям будет отправлено уведомление и так далее ..