Javascript 如何允许firebase用户仅访问他们创建的文档(规则版本=';2';)
我知道这已经存在,但我想我的用例有点不同 我在firestore上有两个集合:“用户”和“模板” 每次创建用户时,我都会创建一个模板,并将模板id分配给下面所示的相同用户id **Repository.js**Javascript 如何允许firebase用户仅访问他们创建的文档(规则版本=';2';),javascript,firebase,google-cloud-firestore,firebase-security,Javascript,Firebase,Google Cloud Firestore,Firebase Security,我知道这已经存在,但我想我的用例有点不同 我在firestore上有两个集合:“用户”和“模板” 每次创建用户时,我都会创建一个模板,并将模板id分配给下面所示的相同用户id **Repository.js** 异步createUser(电子邮件、密码){ const template=await getLocalTemplate() const credentials=wait auth.createUserWithEmailAndPassword(电子邮件,密码) wait db.coll
异步createUser(电子邮件、密码){
const template=await getLocalTemplate()
const credentials=wait auth.createUserWithEmailAndPassword(电子邮件,密码)
wait db.collection('users').doc(credentials.user.uid).set({email})
等待db.collection('templates').doc(credentials.user.uid).set({
…模板,
})
返回凭证
}
然而,我不知道如何允许用户只写模板
以下是我的firestore规则:
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
match /users/{user} {
allow create
allow read, write: if request.auth.uid == user
}
match /templates/{template} {
allow read, create
allow write: if request.auth.uid == /users/{user}
}
}
}
做如下事情。通过使用
{template}
通配符,它使模板
变量在规则中可用
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
match /users/{user} {
allow read: ...;
allow write: if request.auth != null && request.auth.uid == user;
}
match /templates/{template} {
allow read: ...;
allow write: if request.auth != null && request.auth.uid == template;
}
}
}
您可以对
读取
和写入
使用相同的规则,如下所示:
allow read, write: if request.auth != null && request.auth.uid == template;