swift - 如何在 Firebase 中隔离用户数据?
问题描述
我正在创建一个使用 firebase Cloud Firestore 数据库的应用程序。该结构似乎是集合/文档/字段。我正在考虑使用用户 ID 作为集合名称的前缀,或者只是用户 ID 的字段。
我目前正在使用:
Firestore.firestore().collection("Events").
这可以更改为带有 userId 的事件前缀
我目前正在阅读使用中的所有内容:
reference(to: "Events").addSnapshotListener{ (snapshot, _) in
guard let snapshot = snapshot else {return}
for document in snapshot.documents {
// code here
}
}
解决方案
在集合名称上使用前缀并不是一个好主意。这不适用于安全规则。
每个用户数据的通常结构是拥有一个包含 ID 为用户 ID 的文档的集合。然后,您可以在该文档 ID 下进一步组织子集合中的其他数据。
/users
/uid1
/uid2
/events
/likes
/history
然后,您可以非常轻松地使用用户的 UID 编写安全规则。
推荐阅读
- three.js - three.js 中的生活就像纸一样
- ruby-on-rails - :id=> nil 缺少必需的键 :id
- php - 显示 PHP 表单,但提交时除了清除自身之外不执行任何操作
- vbscript - 索引到 Byte() 变量时的 VBScript 类型不匹配
- python - Tkinter如何使用按钮隐藏当前窗口并打开新窗口
- php - 使用 PHP 将字符串的特定部分的逗号转换为分号
- javascript - 如何在一个模板中识别多个表单?
- java - Keycloak 用户存储 SPI 身份验证流程
- javascript - 如何通过一次链接点击连续获取位置
- mysql - Opera PMS v5.0 记录被其他用户锁定?如何解决