我是Firestore的新手,我正在尝试为我的应用编写安全规则。 我有两个集合,一个是“用户”,其中包含在注册过程中存储的数据,例如名字,姓氏,电子邮件和通过Firebase Auth自动生成的用户uid。 第二个集合是项目集合,其中包含从firebase.profile属性(authorfirstname,authorlastname和authorID)提取的数据字段,例如标题,描述,日期和凭证。 ' 现在,当用户注册时,他可以看到所有项目(由任何人创建)。安全规则是-
match /databases/{database}/documents {
match /projects/{project} {
allow read, write: if request.auth.uid != null
}
match /users/{userId}{
allow create
allow read: if request.auth.uid != null
allow write: if request.auth.uid == userId
}
}
}
我想更改规则,以便用户可以读取(显示)和修改由他们而不是其他用户创建的项目。
我尝试将安全规则更改为-
match /databases/{database}/documents {
match /projects/{project} {
allow read, write: if request.auth.uid == userId;
}
match /users/{userId}{
allow create
allow read: if request.auth.uid == userId
allow write: if request.auth.uid == userId
}
}
}
这导致登录时没有任何项目显示,并且也出错- FirebaseError:缺少权限或权限不足。 在新的FirestoreError处
我还尝试将安全规则更改为此-
match /databases/{database}/documents {
match /projects/{project} {
allow read, write: if request.auth.uid == resourse.data.authorID;
}
match /users/{userId}{
allow create
allow read: if request.auth.uid == userId
allow write: if request.auth.uid == userId
}
}
}
这给了我相同的结果,即没有显示任何项目,也出现了相同的错误。