【发布时间】:2021-01-29 06:24:49
【问题描述】:
我正在开发一个具有共享功能的简单的 react-native To-do 应用程序。我正在使用 Firebase Storage 进行存储和共享。但是,我是 Firebase 的初学者,不明白如何继续。我的要求如下
- 每个用户都可以添加/删除/编辑自己的数据库条目。
- 用户 A 应该能够与用户 B 共享他们的一些待办事项。共享可以是
view或edit模式(就像 Google 云端硬盘文件一样)。 - 永久允许用户 B 查看所有未来
view或edit模式的任何新待办事项的选项。基本上,允许或禁止用户 B 查看数据的选项。
我的尝试: 子弹1可以简单地实现
// These rules grant access to a node matching the authenticated
// user's ID from the Firebase auth token
{
"rules": {
"users": {
"$uid": {
".read": "$uid === auth.uid",
".write": "$uid === auth.uid"
}
}
}
}
对于第 2 点和第 3 点,我计划让所有用户都可以访问一个单独的 JSON 文件。因此,当用户 A 向用户 B 授予 edit 对其部分数据的访问权限时,用户 B 的 JSON 文件应使用 A 的 uid 进行更新。我无法为此编写安全规则,因为我不知道我们是否可以编写规则以从 JSON 文件中获取数据。另外,我认为这种方法不是很好,因为一些攻击者可能会用垃圾条目淹没用户 B 的 JSON 文件,实际上也可以删除现有条目。
如能帮助您为 Firebase 存储实现这种类似 Google 云端硬盘的共享功能,我们将不胜感激。谢谢!
【问题讨论】:
-
这个链接应该可以帮助您开始使用基于角色的访问firebase.google.com/docs/firestore/solutions/role-based-access
标签: android firebase react-native