我正在尝试在Firebase实时数据库更改时在android设备中设置推送通知。 假设,如果已安装的应用程序被杀死或在后台运行,如果任何用户在组中发布消息(“发布”节点中添加了新的子项),并且如果该组具有名为currentUid的子项,则我将收到通知。
这是一个发布节点,用户可以在其中发布消息。
"Post":
"pushId":{
"message": "this is a group post"
},
"pushId2":{
"message": "this is a group post2"
},
这是用户的组节点。
"Group": {
"gkgekugkiwughkiguvwvhvuh": true,
"***currentUSERID***": true,
"wkuuwkbuerkigubgi3ugnbgk": true
},
所以我如何使用FCM来完成此功能
答案 0 :(得分:0)
您可以通过编写云功能来做到这一点。
1)将device_token添加到您的用户节点。
2)编写一个云函数,一旦创建数据,该函数将被调用,并将向接收者发送通知。
export const onMessageAdded = functions.database.
ref('/chat/{whichNodes}/{chatId}').onCreate((snapShot, context) => {
var message = {
apns: {
payload: {
aps: {
alert: {
title: "Easee",
body: nameToNotify + " has sent you message",
},
sound: '1',
badge: 1,
},
notification: {
senderId: messageDataForUserOne.senderId + '',
receiverId: messageDataForUserOne.receiverId + '',
notificationMessage: messageDataForUserOne.message + '',
name: nameToNotify,
notificationType: "Push"
}
}
},
android: {
data: {
senderId: messageDataForUserOne.senderId + '',
receiverId: messageDataForUserOne.receiverId + '',
notificationMessage: messageDataForUserOne.message + '',
name: nameToNotify,
notificationType: "Push"
}
},
token: userDeviceToken
};
admin.messaging().send(message).then(suc => {
console.log('Notification send Successfuly.' + suc)
}).catch(errorr => {
console.log('Notification Failed.' + userDeviceToken
)
})
}