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

时间:2020-05-26 17:19:12

标签: firebase google-cloud-firestore firebase-authentication firebase-security

我正在使用 firestore 构建网络应用,我希望用户创建一个firestore文档并共享文档ID作为指向某人(example.com/id?1z32AWS5Wqt5DBlHnCm0)的链接,以便该人带有链接的用户还可以查看和更新​​该Firestore文档。

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

现在我需要将数据库规则写入:

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

  2. 允许用户仅查看和更新​​其具有其集合ID的集合。

1 个答案:

答案 0 :(得分:1)

通过仅允许get而不允许list访问

1是可能的。 read既是get也是list,因此您必须清楚仅允许使用get方法。 Read about granular permissions in the documentation

2确实不可能。仅知道一个集合的名称就足以让任何人尝试访问它。您不能安全地对集合进行“密码保护”。为了控制访问,您必须使用Firebase身份验证提出一些有关用户的限制。