我面临一个问题,我正在读取保存在 Firebase 存储中的图像并将其放入 pdf 中
List<Uint8List> images = [];
for (int i = 0; i < currentOrder.imageNames.length; i++) {
await storageRef
.child(
'Orders/${currentOrder.orderId}/${currentOrder.imageNames.elementAt(i)}')
.getData()
.then((value) => {
images.add(value!),
});
}
我收到以下错误
Error: ClientException: XMLHttpRequest error., uri=https://firebasestorage.googleapis...
当我单击链接时,它会下载图像 - 所以一切都正确 但是 GCP 中有一个配置,我将 cors.json 添加到我的项目中 具有以下特点:
[
{
"origin": ["*"],
"method": ["GET"],
"maxAgeSeconds": 3600
}
]
然后在 gcp 终端上运行它
gsutil cors set cors.json gs://<bucket-name>
但我收到此错误
在 gs://
上设置 CORS ServiceException:401 匿名调用者没有对 Google Cloud Storage 存储桶的 storage.buckets.update 访问权限。资源上的权限“storage.buckets.update”被拒绝(或者它可能不存在)。
我试过了
gcloud auth login
gcloud auth application-default login
然后重新运行 cors set cmd 但它不起作用
另请注意,我在 gcp 上有另一个项目,我可以在其中从存储桶中读取内容并下载文件等。(我一年前做过该项目)
但是现在这个新项目无论我做什么都不起作用
我也在GCP中尝试了以下方法,但没有成功
ServiceException:401 匿名调用者没有对 Google Cloud Storage 存储桶的 storage.buckets.update 访问权限。资源上的权限“storage.buckets.update”被拒绝(或者它可能不存在)。
1 - 登录 GCP 2 - 转到 IAM 和管理 -> 角色 -> 创建角色 -> 填写信息 -> 添加权限 按服务过滤:firebasestorage 检查所有权限
最重要的是添加'storage.buckets.update'
3 - 现在转到 IAM 和管理 -> 服务帐户 -> 创建服务帐户 -> 填写字段 -> 创建并继续 -> 角色 -> 自定义 -> 选择创建的角色 -> 继续 -> 完成
4 - 现在显示新的服务帐户 -> 点击菜单按钮 -> 管理密钥 -> 添加密钥 -> JSON Json已下载
5 - 打开终端 -> 打开编辑器 -> 将 JSON 上传到 cors.json 目录
6 - 运行以下命令: gcloud auth [serviceaccountname]@appspot.gserviceaccount.com --key-file=[jsonfilename].json
不包括括号[]
7 - 然后运行第二个命令:
gsutil cors 设置 cors.json gs://xxxx.appspot.com
我仍然遇到同样的错误