如果我们根据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上设置这种规则吗?
答案 0 :(得分:0)
您可以根据documentation用request.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