Firebase 规则允许用户仅访问特定文档(不进行任何身份验证)



我正在使用 firestore 构建一个 Web 应用程序,我希望用户创建一个 firestore 文档并将文档 ID 作为链接共享给某人 (example.com/id?1z32AWS5Wqt5DBlHnCm0(,以便具有链接的人也可以查看和更新该firestore文档。

请注意,不涉及身份验证,任何人都可以创建文档并将链接发送给某人。如果需要,我还可以使用匿名登录(signInAnonymously()(选项。

现在我需要编写数据库规则来:

  1. 防止用户搜索整个集合以查找集合中的所有其他文档,即使用.get()方法创建querysnapshot,然后循环遍历以查找所有文档。

  2. 允许用户仅查看和更新他们拥有其集合 ID 的集合。

1 可以通过只允许get访问而不允许list来实现。readgetlist,因此您必须清楚只允许使用get方法。 阅读文档中的粒度权限。

2 实际上是不可能的。 只要知道集合的名称就足以让任何人尝试访问它。 您无法安全地"密码保护"集合。 您必须使用Firebase身份验证对用户提出一些限制,以控制访问权限。

最新更新