如何在firebase函数中的一个子节点上的写触发器上从数据库中读取任何数据?

很好奇

在此处输入图片说明

我在 'pojo' 节点上放置了触发器,每当发生一些变化时,它就会被触发。我可以访问它的孩子,但如何访问以下位置?

此位置的值:

/XVbW8ED5DmTUerEYZZykp1GN2TO2/deviceToken

const functions = require('firebase-functions');
const admin = require('firebase-admin');

admin.initializeApp(functions.config().firebase);

exports.ok = functions.database.ref("/{uid}/messages/{key}/pojo")
   .onWrite(event => {
      var snap = event.data;
      var b = snap.child("admin").val();
   }
弗兰克·范·普费伦

触发数据库函数时,Cloud Functions 会从触发点向下传递数据。要从数据库中的另一个位置获取任何数据,您需要在代码中读取该数据。

通过导航访问附近的数据 event.data.ref

所以如果你有一个兄弟姐妹admin

const functions = require('firebase-functions');
const admin = require('firebase-admin');

admin.initializeApp(functions.config().firebase);

exports.ok=functions.database.ref("/{uid}/messages/{key}/pojo")
.onWrite(event =>{

  var snap = event.data;
  return snap.ref.parent.child("admin").once("value").then((adminSnapshot) {
    var adminVal = adminSnapshot.val();
    // TODO: do something with the adminVal and return a value or a promise
  });

}

要从完全不相关的路径读取值,您有两种选择:

  1. 使用event.data.ref.rootevent.data.adminRef.root
  2. 使用 Admin SDK,它已包含在大多数示例中。

使用event.data.ref.rootevent.data.adminRef.root

您还可以使用event.data.ref.root开始从根构建路径event.data.adminRef.root这两个选项的区别在于event.data.ref,与触发函数的用户具有相同的访问权限,同时event.data.adminRef具有对整个数据库的完全访问权限。

一个简单的例子是说您有一个admin要访问的全局节点:

exports.ok=functions.database.ref("/{uid}/messages/{key}/pojo")
.onWrite(event =>{

  var root = event.data.ref.root;
  return root.child("admin").once("value").then((adminSnapshot) {
    var adminVal = adminSnapshot.val();
    // TODO: do something with the adminVal and return a value or a promise
  });

}

使用 Admin SDK,它已包含在大多数示例中。

或者,您可以从 Admin SDK 开始,它已包含在您的代码段中:

const functions = require('firebase-functions');
const admin = require('firebase-admin');

admin.initializeApp(functions.config().firebase);

exports.ok=functions.database.ref("/{uid}/messages/{key}/pojo")
.onWrite(event =>{

  var snap = event.data;
  admin.database().ref('XVbW8ED5DmTUerEYZZykp1GN2TO2/deviceToken').once("value").then(function(tokenSnapshot) {
    var deviceToken = tokenSnapshot.val();
  });

}

另请参阅Firebase 文档的这一部分以获取另一个示例

最后一种方法也适用于其他触发器类型,例如在 HTTP 触发函数中。由于这些函数没有get event.data.ref,因此 Admin SDK 是您唯一的选择。

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在一个DB2数据库上触发并插入到另一个DB2数据库中

来自分类Dev

如何创建触发器以将数据插入另一台服务器上的数据库

来自分类Dev

如何在多个数据库表上创建一个触发器

来自分类Dev

如何不在整个数据库上设置递归触发器?

来自分类Dev

在SQL中创建一个触发器,该触发器从一个表中读取数据,并将新数据插入到另一个表中

来自分类Dev

SQL触发器的语法,用于在另一个数据库中插入数据以及更新另一个数据库中的任何字段

来自分类Dev

Firebase-javascript API仅在一个触发器中获取满足条件的数据节点。是否为每个查询建立新的TCP连接?

来自分类Dev

如何在onCreate触发器上访问Firebase云功能数据库的值

来自分类Dev

如何匹配数据库中两个值中的任何一个?

来自分类Dev

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

来自分类Dev

可安装在可在一个单元格上触发,从另一个单元格获取数据并在第三个单元格中写入数据的Edit触发器上

来自分类Dev

如何创建一个在任何更新的表上更新DateModified的触发器?

来自分类Dev

一个sql触发器,对数据库中的所有表进行插入,更新,删除

来自分类Dev

如何创建触发器以将数据插入另一台服务器上的数据库

来自分类Dev

如何在多个数据库表上创建一个触发器

来自分类Dev

使用触发器在另一个表上插入数据后更新表

来自分类Dev

如何访问SP中其他服务器上的另一个数据库?

来自分类Dev

SQL Server触发器删除另一个数据库

来自分类Dev

更新后在DML触发器中调用对象成员函数(ORACLE数据库)

来自分类Dev

触发器将添加到数据库的新行发送到 postgres 中的另一个数据库?

来自分类Dev

如何在 Firebase 数据库的主节点内创建一个节点?

来自分类Dev

如何在 Oracle 数据库 10g 中编写“IF UPDATING”触发器?

来自分类Dev

获取 Firebase 数据库 Ionic 3 中节点的最后一个值

来自分类Dev

如何从 Firebase Functions 将触发器放置到另一个 Firebase 数据库?

来自分类Dev

如何在firebase数据库上的某个日期之后删除子节点?

来自分类Dev

如何在同一 Kusto 集群上的不同数据库中的 2 个表之间安排数据移动

来自分类Dev

仅在 firebase 实时数据库中的一个节点上禁用读取规则

来自分类Dev

Firebase 数据库触发器 - 从快照中获取数据库对象

来自分类Dev

如何返回用 XSLT 中另一个子节点的数据修改的子节点?

Related 相关文章

  1. 1

    在一个DB2数据库上触发并插入到另一个DB2数据库中

  2. 2

    如何创建触发器以将数据插入另一台服务器上的数据库

  3. 3

    如何在多个数据库表上创建一个触发器

  4. 4

    如何不在整个数据库上设置递归触发器?

  5. 5

    在SQL中创建一个触发器,该触发器从一个表中读取数据,并将新数据插入到另一个表中

  6. 6

    SQL触发器的语法,用于在另一个数据库中插入数据以及更新另一个数据库中的任何字段

  7. 7

    Firebase-javascript API仅在一个触发器中获取满足条件的数据节点。是否为每个查询建立新的TCP连接?

  8. 8

    如何在onCreate触发器上访问Firebase云功能数据库的值

  9. 9

    如何匹配数据库中两个值中的任何一个?

  10. 10

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

  11. 11

    可安装在可在一个单元格上触发,从另一个单元格获取数据并在第三个单元格中写入数据的Edit触发器上

  12. 12

    如何创建一个在任何更新的表上更新DateModified的触发器?

  13. 13

    一个sql触发器,对数据库中的所有表进行插入,更新,删除

  14. 14

    如何创建触发器以将数据插入另一台服务器上的数据库

  15. 15

    如何在多个数据库表上创建一个触发器

  16. 16

    使用触发器在另一个表上插入数据后更新表

  17. 17

    如何访问SP中其他服务器上的另一个数据库?

  18. 18

    SQL Server触发器删除另一个数据库

  19. 19

    更新后在DML触发器中调用对象成员函数(ORACLE数据库)

  20. 20

    触发器将添加到数据库的新行发送到 postgres 中的另一个数据库?

  21. 21

    如何在 Firebase 数据库的主节点内创建一个节点?

  22. 22

    如何在 Oracle 数据库 10g 中编写“IF UPDATING”触发器?

  23. 23

    获取 Firebase 数据库 Ionic 3 中节点的最后一个值

  24. 24

    如何从 Firebase Functions 将触发器放置到另一个 Firebase 数据库?

  25. 25

    如何在firebase数据库上的某个日期之后删除子节点?

  26. 26

    如何在同一 Kusto 集群上的不同数据库中的 2 个表之间安排数据移动

  27. 27

    仅在 firebase 实时数据库中的一个节点上禁用读取规则

  28. 28

    Firebase 数据库触发器 - 从快照中获取数据库对象

  29. 29

    如何返回用 XSLT 中另一个子节点的数据修改的子节点?

热门标签

归档