У меня следующая проблема: я хотел бы отправить push-уведомление в специальную группу, но только если токен имеет значение «enabled = true».В противном случае, если «enabled = false», определенный токен не должен получать push-уведомление.
Нет проблем отправить push-уведомление всем токенам в определенном groupId, так как в облачной функции используется только tokenId,Я использую плагин firebase_messaging для флаттера.
Моя структура в базе данных реального времени: fcm-token -> groupId -> tokenId

(в настоящее время работает: токены 1234 и 5678 получают push-уведомления. Цель: только токен 1234 получает push-уведомления).
Моя облачная функция:
exports.pushNotification = functions.database.ref('messages/{groupid}/{messageid}').onWrite((change, context )=> {
const valueObject = change.after.val();
const group = valueObject.groupId;
if(valueObject.messagetype == 1 && valueObject.groupId != null) {
valueObject.imageUrl= "Sent picture";
DATA = {
notification:{
title : valueObject.author + " @ " + valueObject.groupName,
body : valueObject.text || valueObject.imageUrl,
badge : '1',
sound : 'default'
},
data: {
id: group,
status: '/start',
},
};
return admin.database().ref('fcm-token/'+group).once('value').then(allToken => {
if(allToken.val()){
console.log('token available');
const token = Object.keys(allToken.val());
return admin.messaging().sendToDevice(token, DATA);
}else{
console.log('No token available');
}
});
}
});