Я довольно новичок в облачных функциях на Firebase и пытаюсь запрограммировать некоторый код для перебора массива ссылок на документы, которые были загружены из Firestore.
Массив хранится в моем Firestore и содержит ссылки на каждого пользователя-администратора в моей коллекции пользователей.Каждый из этих пользователей имеет в своем документе поле со своим токеном обмена сообщениями, которое мне нужно для отправки сообщения.Мне удалось получить код для отправки уведомления на токен, который я определяю как константу в коде, но мне не повезло, отправка токенов, хранящихся в базе данных.
Вот мой коддо сих пор;
const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp(functions.config().firebase);
// // Create and Deploy Your First Cloud Functions
// // https://firebase.google.com/docs/functions/write-firebase-functions
//
// exports.helloWorld = functions.https.onRequest((request, response) => {
// response.send("Hello from Firebase!");
// });
exports.notifyNewReport = functions.firestore
.document('admin/reportsToReview')
.onUpdate((change, context) => {
console.log('Change to doc function registered');
// Get an object representing the document
const newValueReports = change.after.data().reports;
// ...or the previous value before this update
const previousValueReports = change.before.data().reports;
if (newValueReports.length > previousValueReports.length) {
console.log('Report added to review list');
var adminsArray = ""
admin.firestore()
.collection('admin')
.doc('admins')
.get()
.then(doc => {
adminsArray = doc.data().admins
return console.log('Found admin UID: ' + adminsArray);
})
.catch(error => {
console.error(error);
res.error(500);
});
//Code to get send notification to each device
console.log("Construct the notification message.");
var message = {
notification: {
body: 'There are new reports to review!',
},
token: token
};
admin.messaging().send(message)
}
});
Если кто-нибудь может указать мне в правильном направлении, это было бы очень признательно!:)