我有以下问题:我想将推送通知发送到特殊组,但前提是令牌的值必须为“ enabled = true”。否则,如果“ enabled = false”,则特定令牌不应获得推送通知。
向特定groupId中的所有令牌发送推送通知是没有问题的,因为在云功能中仅使用了tokenId。我正在使用firebase_messaging插件来解决问题。
我在实时数据库中的结构: fcm-token-> groupId-> tokenId
(当前工作:令牌1234和5678接收推送通知。目标:只有令牌1234接收推送)。
我的云功能:
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');
}
});
}
});