Firebase-缺少权限或权限不足

时间:2019-06-09 17:26:58

标签: angular firebase google-cloud-firestore

我正在为项目使用Firestore,似乎有一些集合引用错误。

ERROR FirebaseError:缺少权限或权限不足。在新的FirestoreError(localhost:4200 / vendor.js:66703:28)

Iv's过去使用过Angular Firebase,好像我在做上次一样的事情。

我的查询非常简单,看起来像这样

public getUsers(): Observable<any> {
    return this.afs.collection('users').valueChanges();
  }

我没有对数据库规则进行任何更改

   service cloud.firestore {
  match /databases/{database}/documents {
    match /{document=**} {
      allow read, write: if false;
    }
  }
}

您是否知道为什么要继续抱怨?

4 个答案:

答案 0 :(得分:6)

您可以将“ false”更改为“ true”。 它将允许在任何情况下对所有用户进行读/写访问 但从不在生产中使用此规则集;它允许 任何人都可以覆盖您的整个数据库。

service cloud.firestore {
  match /databases/{database}/documents {
    match /{document=**} {
      allow read, write: if true;
    }
  }
}

答案 1 :(得分:1)

/ databases / users不可能是数据库中集合的路径,因为集合只能具有奇数个路径分量。您现在所拥有的看起来像是文档参考。

如果您有一个名为“用户”的集合,则该集合的引用如下所示:

this.afs.collection('users')

“数据库”不属于该路径。这只是用于安全规则。

答案 2 :(得分:1)

如果您希望允许所有人共享所有权限,则需要更改数据库规则。 (这是不安全的,建议仅在开发环境中使用。)

service cloud.firestore {
  match /databases/{database}/documents {
    match /{document=**} {
      allow read, write: if true;
    }
  }
}

service cloud.firestore {
  match /databases/{database}/documents {
    match /{document=**} {
      allow read, write: if request.auth != null;
    }
  }
}

如果仅需要登录用户读取和写入数据库。

更多信息https://firebase.google.com/docs/firestore/security/get-started

答案 3 :(得分:0)

正如上面的评论所说, 我在数据库规则中将false更改为true