android - 如何连接 Firebase 身份验证和 Firebase 收集数据库?
问题描述
所以我试图了解 Firebase 的工作原理。我正在为数据库使用 Firebase 云。我创建了一个这样的集合:
'groups': {
'some_group_name': { ... data ... }
'other_group_name': { ... data ... }
}
此外,每个用户在进入应用程序时都会输入电子邮件和密码。在注册时,他选择了组名。例如在注册时,他会设置用户名、密码和some_group_name
. 但是我如何连接当前登录用户和它在数据库中的组?Firebase 身份验证保存的唯一数据是电子邮件和密码。
我需要users
像这样创建另一个集合吗?
"users": {
"some_user_name": "some_group_name"
}
解决方案
您需要将用户的组成员资格/关联存储在某处。如何做到这一点,取决于您的应用程序的确切要求。
如果用户只能是一个组的成员,您可以将他们的组作为字段存储在用户个人资料文档中。您通常会为此拥有一个顶级集合users
,并在该集合下为每个用户创建一个文档,并将用户的 UID 作为文档 ID(以便您可以通过其 UID 轻松查找用户配置文件)。
如果用户可以是多个组的成员,则可以将其存储在同一用户配置文件文档的数组字段中。在这种情况下,使用arrayUnion
和arrayRemove
来操作数组,以便您可以在需要时轻松查询数组成员资格。
推荐阅读
- javascript - 如何等待来自 localStorage 的值?
- ssl - 我的 API 与 Chrome 一起使用,但不适用于其他任何东西
- php - 在 mysql 中向 PDO 查询添加字段
- docker - E: 包 'mysql-client' 在 dockerfile 执行时没有安装候选
- c - 如何释放双指针?
- django - TypeError: __init__() 得到了一个意外的关键字参数“验证器”
- sql - sp_spaceused返回的表使用空间(数据字段)的结果与导出到csv后的空间不一致
- sql-server - CREATE FUNCTION IN SQL select into
- gson - 如何为 Gson 反序列化创建一个通用类
- google-sheets - 我可以限制查询公式中特定列字符的长度吗?