firebase 尝试从云firestore文件获取数据时发生XMLHttpRequest错误

goqiplq2  于 2023-03-27  发布在  其他
关注(0)|答案(1)|浏览(115)

我有以下dart代码:

const String _csvFolder = "CSV_files/";
const String _reportFolder = "Report_files/";

Future<bool> writeFiles(
    String uuid, Uint8List csvBytes, Uint8List reportBytes) async {
  Reference csvFileRef = FirebaseStorage.instance.ref(_csvFolder + uuid);
  Reference reportFileRef = FirebaseStorage.instance.ref(_reportFolder + uuid);
  try {
    await csvFileRef.putData(csvBytes);
    await reportFileRef.putData(reportBytes);
    var test = await FirebaseStorage.instance.ref(_csvFolder + uuid).getData();
    return true;
  } catch (ex) {
    return false;
  }
}

以及以下公共firebase存储规则:

rules_version = '2';
service firebase.storage {
  match /b/{bucket}/o {
    match /{allPaths=**} {
      allow read, write: if true;
    }
  }
}

台词

await csvFileRef.putData(csvBytes);
await reportFileRef.putData(reportBytes);

我可以看到我的存储中的文件。但是

var test = await FirebaseStorage.instance.ref(_csvFolder + uuid).getData();

失败,并出现XMLHttpRequest异常。
但是如果我像在https://stackoverflow.com/a/74783428/11244991中看到的那样运行flutter run -d chrome --web-browser-flag "--disable-web-security",那么它就可以工作。
所以如果我理解得很好的话,这应该是CORS规则的问题。有什么解决方案吗?

klh5stk1

klh5stk11#

我需要使用cors.json文件按照以下文档配置我的CORS规则:
https://firebase.google.com/docs/storage/web/download-files#cors_configuration

相关问题