所以我试图了解Firebase的工作原理。我将Firebase云用于数据库。我创建了这样的收藏夹:
'groups': {
'some_group_name': { ... data ... }
'other_group_name': { ... data ... }
}
每个用户在输入应用程序时也输入电子邮件和密码。在注册时,他选择了组名。例如,在注册时,他将设置用户名,密码和some_group_name
。但是,如何在当前登录用户与其数据库中的组之间建立连接? Firebase身份验证保存的唯一数据是电子邮件和密码。
我是否需要像这样创建另一个集合users
?
"users": {
"some_user_name": "some_group_name"
}
答案 0 :(得分:1)
您需要将用户的组成员身份/关联存储在某个地方。如何执行此操作,取决于您的应用程序的确切要求。
如果用户只能是一个组的成员,则可以将其组存储为用户个人资料文档中的字段。通常,您会为此拥有一个顶级集合users
,并为该用户下的每个用户创建一个文档,并以用户的UID作为文档ID(以便您可以轻松地按用户的UID查找用户个人资料)。
如果用户可以是多个组的成员,则可以将其存储在同一用户配置文件的数组字段中。在这种情况下,请使用arrayUnion
和arrayRemove
到manipulate the array,以便可以轻松地query for array membership when needed。