【问题标题】:Firebase Database Access Issue: Client doesn't have permission to access the desired data [duplicate]Firebase 数据库访问问题:客户端无权访问所需数据 [重复]
【发布时间】:2020-11-03 03:03:19
【问题描述】:

我的 firebase 设置中有一个名为 users 的集合。我有以下规则设置(允许任何人读写):

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

现在,当我尝试使用以下命令访问集合中的数据时:

const usersRef = db.ref("users");

usersRef.on("value", snapshot => {
    const users = snapshot.val();
    console.log(users);
    this.setState(() => ({ loading: false, users }));
}, function(error) {
    console.error('error', error);
});

我收到以下权限问题:

error 错误:permission_denied at /users:客户端没有 访问所需数据的权限。

怎么会?

【问题讨论】:

  • 您显示的安全规则适用于 Cloud Firestore,而您显示的代码正在访问实时数据库。虽然这两个数据库都是 Firebase 的一部分,但它们是完全独立的,一个的安全规则不适用于另一个。要修复错误,您必须为实时数据库设置规则。有关如何执行此操作的演练,请参阅stackoverflow.com/a/52129163

标签: node.js firebase firebase-realtime-database next.js firebase-security


【解决方案1】:

确保您选择了Realtime Database,在我看来您是在 Firestore 上设置规则,但使用的是实时数据库。

您的实时数据库的规则应如下所示:

{
    "rules": {    
        ".read": true,
        ".write": true
    }
}

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2021-08-10
  • 2022-01-15
  • 2019-03-20
  • 2017-02-12
  • 1970-01-01
  • 2018-07-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多