Javascript 如何允许firebase用户仅访问他们创建的文档(规则版本=';2';)

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

我知道这已经存在,但我想我的用例有点不同

我在firestore上有两个集合:“用户”和“模板”

每次创建用户时,我都会创建一个模板,并将模板id分配给下面所示的相同用户id

**Repository.js**


异步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;