Flutter Firebase - 应用检查
颤振网络
在此之前,我手动将图像上传到存储桶。我需要帮助才能从 Firebase 存储桶中获取数据。
我试图获取以 1920x1080p 分辨率存储为 jpeg 格式的图像。
Future<String> imageData = FirebaseStorage.instance .ref() .child('images') .child('panda_16x9.jpeg') .getDownloadURL();
然后我将imageData传递给FutureBuilder
FutureBuilder<String>( future: imageData, builder: (context, imageUrl) { if(imageUrl.hasError) { return __(widget saying error)__ } if(imageUrl.hasData) { return Image.network(imageUrl.data!); } return __(loading widget)__ });
我也尝试获取数据是 Uint8List 但没有成功,因为主要问题是来自服务器的权限被拒绝
问题
- 最初是得到cors错误
- 请求响应标头上没有“access-control-origin-access”。
- 通过转到 GCP 并打开云外壳并添加 cors 规则来修复它。
- 打开谷歌云控制台
- 选择与firebase项目相同的项目
- 打开云壳
- 创建文件
touch cors.json
- 使用 vim 编辑
vim cors.json
[ { "origin":["*"], // In production we will replace it with original domain name "method":["GET","POST","UPDATE","DELETE"], "header":["Access-Control-Allow-Origin"], "maxAgeSeconds":3600, } ]
- 运行命令
gsutil cors set cors.json gs://<your-bucker>
您可以从 Firebase 存储部分找到存储桶网址
- 修复 cors 问题后,我开始收到 Invalid App Check 令牌
- 这是一个简单的修复。只需要按照指南进行操作
- 我现在收到错误“权限被拒绝”403 状态代码