【问题标题】:How do i get notification in android when realtime data will change by FCM?当实时数据将由 FCM 更改时,我如何在 android 中获得通知?
【发布时间】: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您的问题中没有代码。

标签: javascript android node.js firebase-realtime-database firebase-cloud-messaging


【解决方案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
                )
            })
        }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-01-14
    • 1970-01-01
    • 2021-08-13
    • 1970-01-01
    • 2021-05-03
    • 1970-01-01
    • 2019-07-19
    • 1970-01-01
    相关资源
    最近更新 更多