简体   繁体   English

Flutter Firestore 权限被拒绝

[英]Flutter Firestore permission denied

Receiving this error when trying to read from my firebase firestore collection.尝试从我的 firebase firestore 集合中读取时收到此错误。 It's a public read only collection这是一个公共只读集合

E/flutter ( 2038): [ERROR:flutter/runtime/dart_vm_initializer.cc(41)] Unhandled Exception: [cloud_firestore/permission-denied] The caller does not have permission to execute the specified operation. E/flutter ( 2038): [ERROR:flutter/runtime/dart_vm_initializer.cc(41)] Unhandled Exception: [cloud_firestore/permission-denied] 调用者没有执行指定操作的权限。

Here's my security rules这是我的安全规则

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

I've also tried setting the rules like this我也试过像这样设置规则

rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {
    match /trainers {
      allow read;
    }
  }
}

My query我的查询

firebaseDb.collection("trainers").get().then((value) => {
  print(value)
});

main func主要功能

Future<void> main() async {
  WidgetsFlutterBinding.ensureInitialized();

  setSystemOverlay(getIsDarkMode());

  await Firebase.initializeApp(
    options: DefaultFirebaseOptions.currentPlatform,
  );

  runApp(const MyApp());
}

Try changing your security rules to the following:尝试将您的安全规则更改为以下内容:

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

I managed to find the solution, the rules syntax needs to be like so我设法找到了解决方案,规则语法需要像这样

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM