【问题标题】:no Permission to read my own Firestore collection (Flutter)没有权限阅读我自己的 Firestore 收藏 (Flutter)
【发布时间】:2021-02-24 13:26:37
【问题描述】:

当我尝试读取我的 Firestore 集合之一时收到此错误:

[ERROR:flutter/lib/ui/ui_dart_state.cc(177)] Unhandled Exception: [cloud_firestore/permission-denied] 调用者没有执行指定操作的权限。

这是我的 Firestore 初始化:

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await Firebase.initializeApp();
  runApp(MyApp());
}

这是我访问我的收藏的尝试:

Future initFirestore() async {
  var firestore = FirebaseFirestore.instance;
  //firestore.settings(timestampsInSnapshotsEnabled: true);
  QuerySnapshot resultado = await firestore.collection("users").get();
  print(resultado);
}

(我看到有些人在谈论解决这个问题的方法,但 Stackoverflow 不让我问如何进入那些人的文档)

请发送帮助。你,stackoverflow,是最后的希望

【问题讨论】:

  • 你的规则是怎样设置的?转到 console.firebase.google.com => Cloud Firestore => 规则
  • 哦!是那些人在谈论的这个页面。我的规则是:允许读取,写入:如果为假。但我认为,如果将其设置为“True”,任何人都可以读写。无论如何,谢谢。现在我可以继续我的工作了

标签: flutter google-cloud-firestore


【解决方案1】:

可以通过将规则更新到您的 Cloud Firestore 来操作允许您的用户读取和写入您的数据库。 (在 console.firebase.google.com => Cloud Firestore => 规则中找到)

如果您想拥有所有访问权限(在测试时使用很好,但可能应该在您上线时更新)

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

如果您只希望经过身份验证的用户访问您的数据库,您可以添加以下内容

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

这里是rules 的文档,您可以查阅这些文档以微调您的规则。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-01-01
    • 1970-01-01
    • 2019-03-20
    • 2010-11-05
    • 2010-11-19
    • 1970-01-01
    • 2020-09-26
    • 2019-07-27
    相关资源
    最近更新 更多