使用Firebase对项目、列表、组和用户进行NoSQL查询

使用Firebase对项目、列表、组和用户进行NoSQL查询,firebase,firebase-realtime-database,nosql,Firebase,Firebase Realtime Database,Nosql,我正在查看中的数据结构,想知道您将如何获取属于某个组的用户的电子邮件,而他们可能属于多个组,并且针对该用户存储的GroupID是他们当前参与的组 您是否将带有userid的电子邮件地址存储在“members”下,或者相反,对于组中的每个成员,从“users”文档userid获取该用户的电子邮件地址(这意味着迭代组/成员集合并对每个用户进行查询。效率不高) 我已经习惯了SQL,所以这对我来说是全新的。每个用户都应该有一个节点 /users/UID/emails/ /users/UID/emailu

我正在查看中的数据结构,想知道您将如何获取属于某个组的用户的电子邮件,而他们可能属于多个组,并且针对该用户存储的GroupID是他们当前参与的组

您是否将带有userid的电子邮件地址存储在“members”下,或者相反,对于组中的每个成员,从“users”文档userid获取该用户的电子邮件地址(这意味着迭代组/成员集合并对每个用户进行查询。效率不高)


我已经习惯了SQL,所以这对我来说是全新的。

每个用户都应该有一个节点

/users/UID/emails/
/users/UID/emailunread/
/users/UID/settings/
/users/UID/details/
/users/UID/payments/
因此,您只需对单个节点路径执行订阅,即可
this.myDatasubscription=this.DB.list('users/'+this.uid.).snapshotChanges()
确保检测到新电子邮件或帐户设置等更改,并将其实时发布回应用程序,因此,如果您使用的是angular/ng或类似的客户端,那么您的变量
{{{this.email_list}}
应该实时更新,而不会更改页面

看看这个。

我还应该提到,NoSQL可能需要保存两次数据,例如支付信息,以减少查询