从 Cloud Functions 的 Firebase 实时数据库中获取数据

希曼舒·谢赫·杰哈

我正在使用 firebase 函数在 android 设备上发送数据类型推送通知。我正在使用这个 index.js 脚本。当用户在 firebase 数据库中添加新消息时,我将从 firebase 数据库中获取用户 ID。

现在我想使用这个用户 ID 来获取用户的 fcmToken。

索引.js

//import firebase functions modules
const functions = require('firebase-functions');
//import admin module
const admin = require('firebase-admin');
admin.initializeApp(functions.config().firebase);


// Listens for new messages added to messages/:userId
exports.pushNotificationData = functions.database.ref('/messages/{userId}').onWrite( event => {

    console.log('Push notification event triggered');

    //  Grab the current value of what was written to the Realtime Database.
    var valueObject = event.data.val();

    if(valueObject.photoUrl !== null) {
      valueObject.photoUrl= "Sent you a photo!";
    }

  // Create a notification
    const payload = {
        data: {
            title:valueObject.name,
            body: valueObject.text || valueObject.photoUrl,
            sound: "default"
        },
    };

  //Create an options object that contains the time to live for the notification and the priority
    const options = {
        priority: "high",
        timeToLive: 60 * 60 * 24
    };

 const user_id = event.params.userId;
return admin.messaging().sendToDevice(user_id, payload);


});

它是 firebase 数据库中用户配置文件的结构,我想从中获取 fcmToken。

用户资料信息

雷诺塔内克

以下应该可以解决问题。您可以通过'profiles/' + user_id使用该once()方法查询引用来获取令牌的值由于once()是异步的并返回一个承诺,您必须等待承诺解析才能发送消息。

exports.pushNotificationData = functions.database
  .ref('/messages/{userId}')
  .onWrite(event => {
    console.log('Push notification event triggered');

    //  Grab the current value of what was written to the Realtime Database.
    var valueObject = event.data.val();

    if (valueObject.photoUrl !== null) {
      valueObject.photoUrl = 'Sent you a photo!';
    }

    // Create a notification
    const payload = {
        data: {
            title:valueObject.name,
            body: valueObject.text || valueObject.photoUrl,
            sound: "default"
        }
    };

    //Create an options object that contains the time to live for the notification and the priority
    const options = {
      priority: 'high',
      timeToLive: 60 * 60 * 24
    };

    const user_id = event.params.userId;

    return admin
      .database()
      .ref('profiles/' + user_id)
      .once('value')
      .then(snapshot => {
        const token = snapshot.val().fcmToken;
        return admin.messaging().sendToDevice(token, payload, options);
      })
      .catch(error => {
        console.log('Error sending message:', error);
        return false;
      });
  });

此外,请注意您使用的是旧版本的 Cloud Functions (< v 1.0)。您应该更新到新版本和新语法请参阅https://firebase.google.com/docs/functions/beta-v1-diff

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从 Cloud Functions 实时数据库中的子引用获取父节点的原始值“val()”数据

来自分类Dev

从 Google Cloud Functions 原子更新实时数据库

来自分类Dev

从 Firebase 数据库填充 Firebase Cloud Functions 中的数组

来自分类Dev

在 Firebase 的 Cloud Functions 中读取数据库数据

来自分类Dev

Cloud Functions 中实时数据库和 Firestore 之间的原子事务

来自分类Dev

如何从Firebase中的实时数据库获取数据

来自分类Dev

Firebase 实时数据库,从键值对中获取数据

来自分类Dev

如何在 Google Cloud 服务器中触发实时数据库字段(不在 Firebase 的功能中)

来自分类Dev

使用Cloud Functions删除实时数据库中所有出现的UID

来自分类Dev

使用Cloud Functions直接读取VS实时数据库

来自分类Dev

Cloud Function with Python 通过 Firebase 实时数据库的创建事件类型触发

来自分类Dev

Firebase/Cloud 功能不会在实时数据库删除时触发事件

来自分类Dev

从 Cloud Functions for Firebase 读取数据?

来自分类Dev

用于 Firebase 的 Cloud Functions 为 Algolia 中的 Firebase 数据库对象编制索引

来自分类Dev

从 Firebase 获取数据 - Google Cloud Functions

来自分类Dev

Android Firebase 实时数据库获取数据太慢

来自分类Dev

如何获取firebase实时数据库的数据

来自分类Dev

无法从 Firebase 实时数据库获取数据

来自分类Dev

匹配 Firebase Cloud Functions 中数据库对象的数组值

来自分类Dev

从 Firebase 实时数据库中检索子数据

来自分类Dev

Firebase 实时数据库中的数据插入无限

来自分类Dev

无法从 Firebase 实时数据库中检索数据

来自分类Dev

如何在flutter中从Firebase实时数据库中获取数据?

来自分类Dev

如何从android中的firebase实时数据库中获取数据

来自分类Dev

如何从Firebase实时数据库获取最新记录

来自分类Dev

如何从Web中的Firebase实时数据库获取数据?

来自分类Dev

如何从Firebase实时数据库中获取数据并将其显示在微调器上

来自分类Dev

在javascript中在运行时从firebase实时数据库动态获取数据

来自分类Dev

Cloud Firestore或实时数据库

Related 相关文章

  1. 1

    从 Cloud Functions 实时数据库中的子引用获取父节点的原始值“val()”数据

  2. 2

    从 Google Cloud Functions 原子更新实时数据库

  3. 3

    从 Firebase 数据库填充 Firebase Cloud Functions 中的数组

  4. 4

    在 Firebase 的 Cloud Functions 中读取数据库数据

  5. 5

    Cloud Functions 中实时数据库和 Firestore 之间的原子事务

  6. 6

    如何从Firebase中的实时数据库获取数据

  7. 7

    Firebase 实时数据库,从键值对中获取数据

  8. 8

    如何在 Google Cloud 服务器中触发实时数据库字段(不在 Firebase 的功能中)

  9. 9

    使用Cloud Functions删除实时数据库中所有出现的UID

  10. 10

    使用Cloud Functions直接读取VS实时数据库

  11. 11

    Cloud Function with Python 通过 Firebase 实时数据库的创建事件类型触发

  12. 12

    Firebase/Cloud 功能不会在实时数据库删除时触发事件

  13. 13

    从 Cloud Functions for Firebase 读取数据?

  14. 14

    用于 Firebase 的 Cloud Functions 为 Algolia 中的 Firebase 数据库对象编制索引

  15. 15

    从 Firebase 获取数据 - Google Cloud Functions

  16. 16

    Android Firebase 实时数据库获取数据太慢

  17. 17

    如何获取firebase实时数据库的数据

  18. 18

    无法从 Firebase 实时数据库获取数据

  19. 19

    匹配 Firebase Cloud Functions 中数据库对象的数组值

  20. 20

    从 Firebase 实时数据库中检索子数据

  21. 21

    Firebase 实时数据库中的数据插入无限

  22. 22

    无法从 Firebase 实时数据库中检索数据

  23. 23

    如何在flutter中从Firebase实时数据库中获取数据?

  24. 24

    如何从android中的firebase实时数据库中获取数据

  25. 25

    如何从Firebase实时数据库获取最新记录

  26. 26

    如何从Web中的Firebase实时数据库获取数据?

  27. 27

    如何从Firebase实时数据库中获取数据并将其显示在微调器上

  28. 28

    在javascript中在运行时从firebase实时数据库动态获取数据

  29. 29

    Cloud Firestore或实时数据库

热门标签

归档