Firestore规则,用户只能创建和编辑自己的数据



我是firebase的新手,并且我完成了构建react.js站点,其中用户填写了保存在称为drivers的子集合下的表单,然后用户子集合中的用户文档被编辑以显示他之前已经填写了表单。现在我想制定一个规则,以便用户只能在将来需要时创建和更新自己的表单,并且只能读取自己的表单

我的firebase结构是这样的

users:
autoId{
uid,
id,
filledForm,
}
drivers:
id{
idNumber,
}

现在用户和驱动程序中的id和idNumber字段是相同的值,id是驱动程序中文档的名称也是相同的id,现在我试图创建一个firebase规则,其中只有具有相同id的用户才能在驱动程序和用户中创建和编辑他的数据,我如何才能实现这一点?这是我所达到的

rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
match /drivers/{driver} {
allow read,create,update: if isLoggedIn() && request.resource.data.idNumber == request.auth.token.id;
}
match /users/{user} {
allow read,create,update: if isLoggedIn() && request.resource.data.id == request.auth.token.id;
}
}

function  isLoggedIn(){
return request.auth != null;
}


}

在您的路径users/{user}中,{user}实际上是文档Id。如果您已将身份验证令牌ID设置为用户文档ID,则可以使用它来检查请求授权令牌ID。

最新更新