有什么方法可以使用firebase的云功能从“ child_added”事件中的节点获取数据?

ale

我在每个客户端上使用查询“ OnUpdate”来从该节点获取数据并计算children-count,但这太昂贵了。

因此,我决定使用云功能,并基于所有用户都存在的节点创建另一个child-count节点,但是有一个问题,我无法找到任何类似“ OnChildAdded”的查询。

firebase文档上列出的可用查询是“ OnUpdate”,“ OnDelete”,“ OnWrite”和“ OnCreate”,在这种情况下是无用的,因为在子节点上使用“ OnCreate”无法返回父节点的子代或“ OnUpdate”。父节点将再次变得昂贵,因为所有用户都会频繁更新其状态。

那么“ OnOperation”呢?是否有使用它或有其他方法来降低查询成本并创建子计数节点?

这是我的数据库的结构

{
 currentGame: {
  players: {
   playerId: {...playerGameData},
   //,
  },
  noOfPlayer: // this is what i wanted to create based on above players node children_count.
 }
}
ale

如果有人需要解决类似的问题,这是上述问题的解决方案。

const PLAYER_REF = "currentGame/players/{playerId}";
const PLAYER_COUNT_NODE = "currentGame/noOfPlayers";

exports.incPlayersCount = functions.database.ref (PLAYER_REF).onCreate (async (snap) => 
{
    const countRef = snap.ref.root.child (PLAYER_COUNT_NODE);

    await countRef.transaction((current) => {
        return (typeof current !== "number" || current < 0) ? 1 : current + 1;
    });

    return null;
});

exports.decPlayersCount = functions.database.ref (PLAYER_REF).onDelete (async (snap) =>
{
    const countRef = snap.ref.root.child (PLAYER_COUNT_NODE);

    await countRef.transaction((current) => {
        return (typeof current !== "number" || current <= 0) ? 0 : current - 1;
    });

    return null;
});

顺便说一句-它与@FrankvanPuffelen在上述注释中共享的示例代码完全相似。

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

删除对Firebase数据中child_added的引用

来自分类Dev

删除对Firebase数据中child_added的引用

来自分类Dev

仅用于获取ID的具有空值的firebase push方法是否会触发child_added事件?

来自分类Dev

如何使用 Firebase 云功能从 http 请求中获取数据?

来自分类Dev

有什么方法可以使Flutter中的功能无法替代?

来自分类Dev

有什么方法可以使Flutter中的功能无法替代?

来自分类Dev

是否可以使用节点js云功能访问FieldValue?

来自分类Dev

Firebase child_added创建重复项

来自分类Dev

如何使用Javascript云功能从Firebase Realtime数据库中随机获取子密钥名称

来自分类Dev

有什么方法可以使FullCalendar在事件到期或正在进行时触发功能?

来自分类Dev

有什么方法可以使双击事件在使用原始JavaScript的手机中起作用?

来自分类Dev

有什么方法可以使用本机ACID兼容数据库获取Meteor?

来自分类Dev

有什么方法可以使用mongoose从mongodb的批量操作中获取修改的IDS?

来自分类Dev

有什么方法可以使用Apache POI在Excel中创建数据透视表?

来自分类Dev

Python-有什么方法可以使用Openpyxl动态处理Excel文件中的数据

来自分类Dev

在Flutter应用程序中从Firebase实时数据库事件获取父节点

来自分类Dev

是否可以使用Spring Data和MongoDB的索引功能从子类中索引超类的公共字段?

来自分类Dev

您可以使用Windows的内置功能从命令提示符中压缩文件吗?

来自分类Dev

有什么方法可以使用import someValue._在Scala中实现重写方法?

来自分类Dev

在Firebase中使用child_added / child_changed进行无限循环

来自分类Dev

有什么方法可以使用Buffer javascript包从字节获取位级别信息?

来自分类Dev

有什么方法可以使用Google Signup Android集成获取用户密码

来自分类Dev

有什么方法可以获取模块中定义的功能列表?

来自分类Dev

有什么方法可以使用PhantomJSDriver在PhantomJS中设置用户代理?

来自分类Dev

有什么方法可以使用Java动态地在zip文件中创建zip吗?

来自分类Dev

为什么我可以使用模板函数中的私有方法

来自分类Dev

有什么方法可以使用Java中的Thread在JPanel上绘制图形吗?

来自分类Dev

有什么方法可以使用下拉列表中的复选框?

来自分类Dev

有什么方法可以使用BeatifulSoup编辑html文件中以编程方式嵌套的表?

Related 相关文章

  1. 1

    删除对Firebase数据中child_added的引用

  2. 2

    删除对Firebase数据中child_added的引用

  3. 3

    仅用于获取ID的具有空值的firebase push方法是否会触发child_added事件?

  4. 4

    如何使用 Firebase 云功能从 http 请求中获取数据?

  5. 5

    有什么方法可以使Flutter中的功能无法替代?

  6. 6

    有什么方法可以使Flutter中的功能无法替代?

  7. 7

    是否可以使用节点js云功能访问FieldValue?

  8. 8

    Firebase child_added创建重复项

  9. 9

    如何使用Javascript云功能从Firebase Realtime数据库中随机获取子密钥名称

  10. 10

    有什么方法可以使FullCalendar在事件到期或正在进行时触发功能?

  11. 11

    有什么方法可以使双击事件在使用原始JavaScript的手机中起作用?

  12. 12

    有什么方法可以使用本机ACID兼容数据库获取Meteor?

  13. 13

    有什么方法可以使用mongoose从mongodb的批量操作中获取修改的IDS?

  14. 14

    有什么方法可以使用Apache POI在Excel中创建数据透视表?

  15. 15

    Python-有什么方法可以使用Openpyxl动态处理Excel文件中的数据

  16. 16

    在Flutter应用程序中从Firebase实时数据库事件获取父节点

  17. 17

    是否可以使用Spring Data和MongoDB的索引功能从子类中索引超类的公共字段?

  18. 18

    您可以使用Windows的内置功能从命令提示符中压缩文件吗?

  19. 19

    有什么方法可以使用import someValue._在Scala中实现重写方法?

  20. 20

    在Firebase中使用child_added / child_changed进行无限循环

  21. 21

    有什么方法可以使用Buffer javascript包从字节获取位级别信息?

  22. 22

    有什么方法可以使用Google Signup Android集成获取用户密码

  23. 23

    有什么方法可以获取模块中定义的功能列表?

  24. 24

    有什么方法可以使用PhantomJSDriver在PhantomJS中设置用户代理?

  25. 25

    有什么方法可以使用Java动态地在zip文件中创建zip吗?

  26. 26

    为什么我可以使用模板函数中的私有方法

  27. 27

    有什么方法可以使用Java中的Thread在JPanel上绘制图形吗?

  28. 28

    有什么方法可以使用下拉列表中的复选框?

  29. 29

    有什么方法可以使用BeatifulSoup编辑html文件中以编程方式嵌套的表?

热门标签

归档