我正在使用 firestore 构建网络应用,我希望用户创建一个firestore文档并共享文档ID作为指向某人(example.com/id?1z32AWS5Wqt5DBlHnCm0
)的链接,以便该人带有链接的用户还可以查看和更新该Firestore文档。
请注意,其中没有不涉及身份验证,任何人都可以创建文档并将链接发送给某人。如果需要,我还可以使用匿名登录(signInAnonymously()
)选项。
现在我需要将数据库规则写入:
防止用户搜索整个集合以查找集合中的所有其他文档,即使用.get()
方法创建querysnapshot
,然后在其中循环查找所有文档。
允许用户仅查看和更新其具有其集合ID的集合。
答案 0 :(得分:1)
get
而不允许list
访问 1是可能的。 read
既是get
也是list
,因此您必须清楚仅允许使用get
方法。 Read about granular permissions in the documentation。
2确实不可能。仅知道一个集合的名称就足以让任何人尝试访问它。您不能安全地对集合进行“密码保护”。为了控制访问,您必须使用Firebase身份验证提出一些有关用户的限制。