Firebase 谷歌云Firestore安全规则-文档ID规则
如果我们基于Firebase身份验证用户ID创建新的文档ID(这样我们就不需要直接从已知用户ID查询和获取文档),我们是否可以创建一个安全规则,只允许拥有此类Firebase身份验证用户ID的用户创建具有此类用户ID的文档ID?比如,Firebase 谷歌云Firestore安全规则-文档ID规则,firebase,google-cloud-firestore,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 cre
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上设置这种规则吗?最好在文档上添加一个所有者字段,将创建文档的用户id分配给该字段,然后在更新时检查该字段
allow update: if resource.data.owner == request.auth.uid
最好在文档上添加一个所有者字段,将创建文档的用户id分配给该字段,然后在更新时检查该字段
allow update: if resource.data.owner == request.auth.uid
您可以使用
request.resource.id
根据请求获取请求的目标文档id。然后,您可以将其与请求身份验证用户id进行比较,类似于allow create:if request.resource.id==request.auth.uid
,以限制权限。您可以根据。然后,您可以将其与请求身份验证用户id进行比较,类似于allow create:if request.resource.id==request.auth.uid
,以限制权限。如果将用户id保存在文档上,则这是一项简单的任务。既然您可以访问安全规则中的用户ID,那么如果用户在浏览器上覆盖文档ID,您会做什么?您也会编写安全规则来禁止这样做。您找到解决方案了吗?我也遇到了同样的问题,如果您将用户id保存在文档中,那么这是一项简单的任务。既然您可以访问安全规则中的用户ID,那么如果用户在浏览器上覆盖文档ID,您会做什么?您也会编写安全规则来禁止这样做。您找到解决方案了吗?我在模拟器中遇到了同样的问题,创建操作失败,尽管它在更新或删除操作中运行良好。在模拟器中,创建操作失败,尽管它在更新或删除操作中运行良好