firestore:PERMISSION_DENIED:权限缺失或不足

新手上路,请多包涵

我收到错误

gettingdocuments.com.google.firebase.firestore.FirebaseFirestoreException:PERMISSION_DENIED:缺少权限或权限不足。

对于 else 语句中的以下代码

db.collection("users")
    .get()
    .addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
        @Override
        public void onComplete(@NonNull Task<QuerySnapshot> task) {
             if (task.isSuccessful()) {
                 for (DocumentSnapshot document : task.getResult()) {
                     s(document.getId() + " => " + document.getData());
                 }
             } else {
                 s("Error getting documents."+ task.getException());
             }
         }
     });

原文由 SUHAS REKHU 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 880
2 个回答

进入数据库 -> 规则 ->

对于开发:

改变 allow read, write: if 假;真;

注意:它只是用于开发目的的快速解决方案,因为它会关闭所有安全性。因此,不建议用于生产。

对于生产:

如果从 firebase 进行身份验证: Change allow read, write: if false;request.auth != null;

原文由 Luvnish Monga 发布,翻译遵循 CC BY-SA 4.0 许可协议

有很多好的答案,但由于这是 Google 对 Firestore 权限被拒绝错误的最高响应,我想我会为初学者和新手添加一个答案。

为什么选择安全规则?

如果您编写自己的后端,您将让用户向您的服务器询问某些内容,然后服务器将决定允许他们做什么。例如,您的服务器不允许 user1 删除 user2 的所有数据。

但由于您的用户直接与 Firebase 交互,因此您无法真正信任用户发送给您的任何内容。例如,用户 1 可以将其删除请求中的用户 ID 更改为“用户 2”。

Firestore 安全规则是您告诉 Firestore 又名您的后端服务器的地方,允许谁读取和写入哪些数据。

Firestore 团队的这段视频非常有帮助。

在此处输入图像描述https://www.youtube.com/watch?v=eW5MdE3ZcAw

如果您遇到“权限缺失或权限不足”错误,我强烈建议您先观看完整的 22 分钟视频,然后再尝试其他任何操作。

我从 110710 了解了安全规则是如何工作的,以及为什么我只从这个视频中得到了错误。

入门指南也很有用,可以帮助回答视频未涵盖的问题。 https://firebase.google.com/docs/firestore/security/get-started

原文由 Joshua Dance 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题