AngularFire2:错误错误:缺少权限或权限不足

时间:2018-08-07 13:31:08

标签: firebase google-cloud-firestore angularfire2 firebase-security-rules

不确定访问AngularFirestoreCollection时为什么出现此错误:

  

错误错误:缺少权限或不足权限。

this.categories = afs.collection('categories').doc(this.afAuth.auth.currentUser.uid).collection<Category>('categories');

Firestore数据库规则:

service cloud.firestore {
  match /databases/{database}/documents {
    match /categories/{userId}{
      allow read, write: if request.auth.uid == userId;
    }
  }
}

我在这里想念什么?

2 个答案:

答案 0 :(得分:1)

您已在应用程序中配置了深层路径:

Categories --> User --> Categories

您的规则仅包含父文件夹:

/categories/{userId}

您必须更改为:

/categories/{userId}/categories/{category}

因此,您可以访问UserId以获取匹配条件,以及当前路径的效果。

何时使用通配符以及何时使用特定或嵌套的匹配条件有很多原因,请查看main docs并选择最合适的实现。

答案 1 :(得分:0)

有同样的问题。

在拨打电话之前检查是否已经登录:

isSignedIn() {
  this.auth.onAuthStateChanged((user) => {
    if (user) {
    // User is signed in.
    console.log("User is signed in.");

    } else {
      console.log("No user is signed in.");
    }
});