Firebase 按键检索对象

Firebase 按键检索对象,firebase,firebase-realtime-database,database-design,Firebase,Firebase Realtime Database,Database Design,我想构造一个参与者列表,其中包含指向其他对象的键 我目前的结构: - events -- 12345678910 // eventKey --- name --- participants // contains userIds ---- A123456789: true ---- B123456789: true - users -- A123456789 // userId --- Username: 'NameA' -- B123456789 // userId --- Username

我想构造一个参与者列表,其中包含指向其他对象的键

我目前的结构:

- events
-- 12345678910 // eventKey
--- name
--- participants // contains userIds
---- A123456789: true
---- B123456789: true

- users
-- A123456789 // userId
--- Username: 'NameA'
-- B123456789 // userId
--- Username: 'NameB'
我只是将用户ID保存在参与者列表中,以避免冗余数据并便于维护

我的问题:检索所有引用的用户密钥的用户数据的最佳方法是什么?我必须为每个用户id创建一个查询吗?! 还是有更好的方法在firebase中保存引用


提前感谢

对于您当前的结构,您必须执行多个查询


在NoSQL数据库中,复制数据是非常常见的,以避免执行类似这样的多个查询。

对于当前的结构,您必须执行多个查询


在NoSQL数据库中,复制数据是非常常见的,以避免执行类似这样的多个查询。

要读取特定事件中所有参与者的用户数据,确实需要为每个参与者附加一个侦听器。这并不像许多开发人员最初认为的那么慢,因为

但是,在每个事件下为每个参与者复制一些数据也是很常见的,这样您就可以显示参与者的基本信息,而无需读取每个单独的用户节点

例如,如果显示活动的参与者姓名,则可以存储用户名而不是
true
,并保存查找。但当然,这是以拥有重复数据为代价的,并且必须弄清楚是否/如何使数据保持最新。要了解更多关于这方面的基本策略,请参阅

关于这个主题的一些进一步的好的阅读:

  • 这篇关于

要读取特定事件中所有参与者的用户数据,您必须为每个参与者附加一个侦听器。这并不像许多开发人员最初认为的那么慢,因为

但是,在每个事件下为每个参与者复制一些数据也是很常见的,这样您就可以显示参与者的基本信息,而无需读取每个单独的用户节点

例如,如果显示活动的参与者姓名,则可以存储用户名而不是
true
,并保存查找。但当然,这是以拥有重复数据为代价的,并且必须弄清楚是否/如何使数据保持最新。要了解更多关于这方面的基本策略,请参阅

关于这个主题的一些进一步的好的阅读:

  • 这篇关于