Firebase Messaging-如果启用了针对特定令牌的推送,则将推送通知分组

时间:2019-04-08 18:59:49

标签: firebase-realtime-database push-notification flutter google-cloud-functions

我有以下问题:我想将推送通知发送到特殊组,但前提是令牌的值必须为“ enabled = true”。否则,如果“ enabled = false”,则特定令牌不应获得推送通知。

向特定groupId中的所有令牌发送推送通知是没有问题的,因为在云功能中仅使用了tokenId。我正在使用firebase_messaging插件来解决问题。

我在实时数据库中的结构: fcm-token-> groupId-> tokenId

enter image description here

(当前工作:令牌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');
    }
});
}
});

0 个答案:

没有答案