Я написал облачную функцию для прослушивания создания документа в коллекции, в моей базе данных
вот функция,
const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp(functions.config().functions);
var newData;
exports.myTrigger = functions.firestore.document('FCM/{id}').onCreate(async (snapshot, context) => {
//
if (snapshot.empty) {
console.log('No Devices');
return;
}
newData = 'hello';
const deviceIdTokens = await admin
.firestore()
.collection('FCM')
.get();
var tokens = [];
var i=0;
for (var token of deviceIdTokens.docs) {
tokens.push(token.data().ar1[i]);
i++;
}
var payload = {
notification: {
title: 'push title',
body: 'push body',
sound: 'default',
},
data: {
push_key: 'Push Key Value',
key1: newData,
},
};
try {
const response = await admin.messaging().sendToDevice(tokens, payload);
console.log('Notification sent successfully');
} catch (err) {
console.log(err);
}
});
Эта функция работает странно,
Например, иногда он отправляет уведомление, а иногда нет.
Я не знаю, как решить эту проблему,
В моем поле arr1 у меня есть массив устройств токены, которым я хочу отправлять уведомления,
Я хочу, чтобы функция отправляла уведомления только на устройства (с использованием токенов), которые только что были созданы (во вновь созданном документе), а затем удалите документ.
Думаю, он отправляет уведомления сразу всем документам.
Я новичок в узле ..
Есть ли способ отправлять уведомления только на имеющиеся токены устройства только в одном документе (.. последний созданный документ)? .. Я думаю, он отправляет уведомления всем.
пожалуйста, помогите мне.
ОБНОВЛЕНИЕ: - Вот моя структура документа это не моя структура документа