Java:迭代Firebase数据树(实时)

Java:迭代Firebase数据树(实时),java,firebase,firebase-realtime-database,iterator,Java,Firebase,Firebase Realtime Database,Iterator,我的Firebase数据结构如下所示: 我想迭代并搜索特定的用户电子邮件地址 我试过使用dataSnapshot,但工作了几个小时后,我一无所获 如有任何帮助或示例,将不胜感激 谢谢。您当前的结构允许您轻松找到特定业务的用户。但是,它不允许您轻松地为特定用户查找业务,也不允许您在所有业务中查找特定用户 要允许后者,您需要存储一个用户的平面列表,以便可以在该列表中进行搜索。这样的顶级节点可以用于此用例: Users: { "$uid": { "email

我的Firebase数据结构如下所示:

我想迭代并搜索特定的用户电子邮件地址

我试过使用
dataSnapshot
,但工作了几个小时后,我一无所获

如有任何帮助或示例,将不胜感激


谢谢。

您当前的结构允许您轻松找到特定业务的用户。但是,它不允许您轻松地为特定用户查找业务,也不允许您在所有业务中查找特定用户

要允许后者,您需要存储一个用户的平面列表,以便可以在该列表中进行搜索。这样的顶级节点可以用于此用例:

Users: {
  "$uid": {
    "email": "test@g.com",
    "business": "test (1593695305)",
    ...
  }
}
另见:


您当前的结构允许您轻松找到特定业务的用户。但是,它不允许您轻松地为特定用户查找业务,也不允许您在所有业务中查找特定用户

要允许后者,您需要存储一个用户的平面列表,以便可以在该列表中进行搜索。这样的顶级节点可以用于此用例:

Users: {
  "$uid": {
    "email": "test@g.com",
    "business": "test (1593695305)",
    ...
  }
}
另见:


谢谢!所以换句话说,我应该将我的数据结构改为基于用户而不是基于业务的?如果一个企业有另一个子列表和“用户列表”呢?例如userList和orderList?不一定要更改它,因为添加了一个额外的结构来允许您的额外用例。这在使用NoSQL数据库时非常常见。有关这方面的介绍,请参见,谢谢!所以换句话说,我应该将我的数据结构改为基于用户而不是基于业务的?如果一个企业有另一个子列表和“用户列表”呢?例如userList和orderList?不一定要更改它,因为添加了一个额外的结构来允许您的额外用例。这在使用NoSQL数据库时非常常见。有关这方面的介绍,请参见