当实时数据将由 FCM 更改时,我如何在 android 中获得通知?
Posted
技术标签:
【中文标题】当实时数据将由 FCM 更改时,我如何在 android 中获得通知?【英文标题】:How do i get notification in android when realtime data will change by FCM? 【发布时间】:2019-12-02 03:15:36 【问题描述】:我正在尝试在 Firebase 实时数据库更改时在 android 设备中设置推送通知。 假设,如果安装的应用程序被杀死或在后台运行,如果任何用户在组中发布消息(在 Post 节点中添加了新子节点)并且如果组有名为 currentUid 的子节点,那么我将收到通知。
这是用户可以发布消息的帖子节点。
"Post":
"pushId":
"message": "this is a group post"
,
"pushId2":
"message": "this is a group post2"
,
这是用户的组节点。
"Group":
"gkgekugkiwughkiguvwvhvuh": true,
"***currentUSERID***": true,
"wkuuwkbuerkigubgi3ugnbgk": true
,
那么我是如何使用 FCM 来完成这个功能的
【问题讨论】:
我投票结束这个问题,因为它过于宽泛,无法在 Stack Overflow 上的一篇文章中合理地回答。这是一段复杂的 javascript,它使用多种技术来实现特定的用例。如果您不了解 JavaScript,那么您的第一步就是在不涉及其他复杂技术的环境中学习它。然后对彼此单独的技术做同样的事情。一旦你做到了,结合你的学习,你找到的代码应该开始变得更有意义。届时,您可以提出更有针对性的问题。 好的,我编辑了我的问题below javascript code
您的问题中没有代码。
【参考方案1】:
你可以通过编写云函数来做到这一点。
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
)
)
【讨论】:
以上是关于当实时数据将由 FCM 更改时,我如何在 android 中获得通知?的主要内容,如果未能解决你的问题,请参考以下文章