Google Cloud Firestore安全规则 - 有关文档ID的规则

时间:2018-05-02 03:45:16

标签: firebase google-cloud-firestore

如果我们根据Firebase身份验证用户的ID创建新的文档ID(这样我们就不需要直接从已知的用户ID查询和获取文档),我们是否可以创建一个安全规则,我们只允许那些用户此类Firebase身份验证用户ID的所有者是否可以使用此类用户ID创建文档ID?例如;

We have two users as follows:-

Firebase user ID: AAA
Firebase user ID: BBB

Expected results from Firestore security rules

AAA creates document ID: AAA-1 - (ok)
AAA creates document ID: AAA-2 - (ok)
AAA creates document ID: BBB-1 - (not ok)
AAA creates document ID: XYZ-1 - (not ok)

BBB creates document ID: AAA-1 - (not ok)
BBB creates document ID: AAA-2 - (not ok)
BBB creates document ID: BBB-1 - (ok)
BBB creates document ID: XYZ-1 - (not ok)

我们可以在Firestore上设置这种规则吗?

2 个答案:

答案 0 :(得分:0)

您可以根据documentationrequest.resource.id获取请求的目标文档ID。然后,您可以将其与请求授权用户ID(例如allow create: if request.resource.id == request.auth.uid)进行比较,以限制权限。

答案 1 :(得分:-1)

最好在文档上添加一个所有者字段,并向其分配创建文档的用户ID,然后在更新时检查该字段,例如。

allow update: if resource.data.owner == request.auth.uid