【问题标题】:Firebase MessagingService get push Id in onMessageReceivedFirebase MessagingService 在 onMessageReceived 中获取推送 ID
【发布时间】:2018-03-16 03:58:59
【问题描述】:

我正在使用 FirebaseMessagingService。我正在使用 NodeJS 推送数据,如下所示:

exports.pushData = functions.database.ref('/Datas/{pushId}').onWrite( event => {
console.log('Push data event triggered');
/* Grab the current value of what was written to the Realtime Database */
    var valueObject = event.data.val();
/* Create a notification and data payload. They contain the notification information, and message to be sent respectively */
    const data = {
        data: {
            from_user: valueObject.from_user,
            to_user: valueObject.to_user
        }
    };

此数据存储在 Firebase 中,例如:

-L7grmlClxCd4ebzaSdo
    from_user: "Joe"
    to_user: "Jack"

我想在某些情况下删除这些数据,但我无法访问 onMessageReceived 侦听器中的推送 ID。我可以使用

获取数据
remoteMessage.getData();

但是,其中没有键(push Id)值。只有 from_user 和 to_user 正在获取。我需要在列表器中有此数据的密钥,以便稍后删除此数据。我怎么会有这个?

【问题讨论】:

    标签: firebase firebase-realtime-database firebase-cloud-messaging


    【解决方案1】:

    触发路径中通配符的值在event.params 中可用。

    将该值添加到您要发送的数据对象中:

    const data = {
        data: {
            from_user: valueObject.from_user,
            to_user: valueObject.to_user,
            pushId: event.params.pushId // <= ADD
        }
    };
    

    【讨论】:

    • 听起来不错!我会在几个小时内测试它,然后告诉你结果。非常感谢。
    • 像魅力一样工作!非常感谢!
    猜你喜欢
    • 2016-07-31
    • 1970-01-01
    • 1970-01-01
    • 2016-09-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多