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

克里斯托夫

在我的Flutter应用程序中,我想跟踪不同公司的员工位置,而不必拼合数据库(请参见下面的体系结构)。

问题1:如果我在办公室节点上设置了侦听器,是否可以从事件中获取父节点?

问题2:如果在数据库中创建了新的公司节点,如何在办公室的新公司上动态附加新的侦听器?

 _employeesQuery = databaseReference.reference().child("Company_1/Office_1");

_onEmployeeAddedSubscription =
    _employeesQuery.onChildAdded.listen(onEmployeeAdded);

...

onEmployeeAdded(Event event) {
   setState(() {
     String name = event.snapshot.key;
     print("New employee added $name in Office ?? in Company ??");
   });
}

数据库架构

弗兰克·范普菲伦

Firebase的文档建议有充分的理由避免嵌套数据和扁平化数据结构您在这里没有遵循该建议,这就是数据结构和用例之间不匹配的原因。

Firebase子侦听器在子节点的平面列表上工作,他们不了解层次结构。因此,在您的模型中,您可以侦听所有办公室,然后childChanged在办公室中的某些内容发生更改时听一听,或者您可以听特定的办公室,然后childAdded在将用户添加到该办公室时听一听如果您听所有办公室的话,则必须找出应用程序代码中发生了什么更改。

按照Firebase的建议,我实际上将您的数据建模为两个顶级列表:

userOffices: {
  "Dan": "Company_1/Office_1",
  "Tom": "Company_1/Office_1",
  "Pete": "Company_1/Office_2",
  "max": "Company_1/Office_2"
},
officeUsers: {
  "Company_1-Office_1": {
    "Dan": true,
    "Tom": true
  },
  "Company_1-Office_2": {
    "Pete": true,
    "max": true
  }
}

确切的模型可能会有所不同,但是这里重要的是我们已经在两个方向上存储了数据。现在,您可以对办公室的用户进行罚款,也可以对直接查找用户的办公室进行罚款。您可以听取信息,userOffices了解何时将用户添加到任何办公室。

另请参阅:

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

无法将数据从 Firebase 实时数据库检索到 Web 应用程序中

来自分类Dev

Firebase实时数据库:如何获取父节点的值

来自分类Dev

Firebase Android应用程序-不更新实时数据库

来自分类Dev

Firebase实时数据库写崩溃的Android应用程序

来自分类Dev

Android应用程序离线使用时,Firebase实时数据库崩溃

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

Web中的Flutter Firebase实时数据库

来自分类Dev

在SwiftUI中读取带有子节点的Firebase实时数据库父节点时出现问题

来自分类Dev

Flutter:如何从Firebase实时数据库中获取新添加的记录?

来自分类Dev

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

来自分类Dev

使用实时数据库更新 Android 应用程序的内部数据库

来自分类Dev

首次安装android应用时,如何从Firebase实时数据库获取数据库

来自分类Dev

我刚刚从 firebase 控制台删除了我的应用程序,但它仍在工作并在实时数据库中更改数据

来自分类Dev

当设备上线时,Firebase 实时数据库会同步,但应用程序没有打开吗?

来自分类Dev

如果我在 Android 中为 Firebase 实时数据库设置侦听器,则应用程序在后台消耗电量

来自分类Dev

在 Firebase 中创建实时数据库时卡在创建帐户上,我正在制作电子商务应用程序

来自分类Dev

如何在firebase实时数据库android中的唯一键下获取特定节点

来自分类Dev

在删除Firebase实时数据库阵列中的节点后自动更改节点号

来自分类Dev

如何从Xamarin.Forms上的Firebase实时数据库获取ID节点(密钥)

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

Android 应用程序:从实时数据库到 Firestore - 将数据更新到数据库

来自分类Dev

从Firebase实时数据库Flutter获取Stream <Event>的Stream <List <Object >>

来自分类Dev

在 firebase 实时数据库中跨多个节点搜索

来自分类Dev

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

来自分类Dev

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

Related 相关文章

  1. 1

    无法将数据从 Firebase 实时数据库检索到 Web 应用程序中

  2. 2

    Firebase实时数据库:如何获取父节点的值

  3. 3

    Firebase Android应用程序-不更新实时数据库

  4. 4

    Firebase实时数据库写崩溃的Android应用程序

  5. 5

    Android应用程序离线使用时,Firebase实时数据库崩溃

  6. 6

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

  7. 7

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

  8. 8

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

  9. 9

    Web中的Flutter Firebase实时数据库

  10. 10

    在SwiftUI中读取带有子节点的Firebase实时数据库父节点时出现问题

  11. 11

    Flutter:如何从Firebase实时数据库中获取新添加的记录?

  12. 12

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

  13. 13

    使用实时数据库更新 Android 应用程序的内部数据库

  14. 14

    首次安装android应用时,如何从Firebase实时数据库获取数据库

  15. 15

    我刚刚从 firebase 控制台删除了我的应用程序,但它仍在工作并在实时数据库中更改数据

  16. 16

    当设备上线时,Firebase 实时数据库会同步,但应用程序没有打开吗?

  17. 17

    如果我在 Android 中为 Firebase 实时数据库设置侦听器,则应用程序在后台消耗电量

  18. 18

    在 Firebase 中创建实时数据库时卡在创建帐户上,我正在制作电子商务应用程序

  19. 19

    如何在firebase实时数据库android中的唯一键下获取特定节点

  20. 20

    在删除Firebase实时数据库阵列中的节点后自动更改节点号

  21. 21

    如何从Xamarin.Forms上的Firebase实时数据库获取ID节点(密钥)

  22. 22

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

  23. 23

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

  24. 24

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

  25. 25

    Android 应用程序:从实时数据库到 Firestore - 将数据更新到数据库

  26. 26

    从Firebase实时数据库Flutter获取Stream <Event>的Stream <List <Object >>

  27. 27

    在 firebase 实时数据库中跨多个节点搜索

  28. 28

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

  29. 29

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

热门标签

归档