繁体   English   中英

Firebase 即使在启用存储后存储仍返回 412 错误 API

[英]Firebase storage returning 412 error even after enabling storage API

我们已经使用 firebase 存储来存储我们应用程序中的图像和文件。 最近我们的文件似乎没有加载到应用程序中,经过交叉检查后我发现了以下错误。

{
  "error": {
    "code": 412,
    "message": "A required service account is missing necessary permissions. Please resolve by visiting the Storage page of the Firebase Console and re-linking your Firebase bucket or see this FAQ for more info: https://firebase.google.com/support/faq#storage-accounts"
  }
}

经过进一步调查,我在下面相关的常见问题解答中找到了解决方案。 https://firebase.google.com/support/faq/index#storage-accounts

根据文档,我为 Firebase 服务代理创建了一个新的服务帐户,我是管理员角色作为 Cloud Storage。 它创建了一个名为服务帐户名称service-PROJECT_NUMBER@PROJECT_id.iam.gserviceaccount.com的服务帐户。 此外,我还启用了 IAM 管理策略来管理服务。 但仍然没有加载存储 URL。

我是否需要对存储权限添加更多更改? 如何将现有存储桶数据用于新更新?

我只是为自己解决了这个问题。

  1. 在 Cloud Storage 中创建存储分区
  2. 获取您的项目名称和存储桶名称
  3. Go 这里: https://firebase.google.com/docs/reference/rest/storage/rest/v1beta/projects.buckets/addFirebase
  4. 按尝试它
  5. 填写您的项目名称和存储桶名称。 按执行,瞧!

在此处查看我的屏幕截图

如本github中所述。

在具有项目所有者角色的IAM 页面上,您可以选择授予访问权限。 添加此服务帐户。 service-project number@gcp-sa-firebasestorage.iam.gserviceaccount.com为原则, Cloud Storage for Firebase Service Agent为角色。

如果您在将服务帐户 (service-@gcp-sa-firebasestorage.iam.gserviceaccount.com) 添加到项目时遇到问题,则可能是 Cloud Storage for Firebase 尚未创建它。

尝试使用AddFirebase API将存储桶重新链接到您的项目,然后重试:您可以参考

我通过以下步骤解决了这个问题。 在存储管理员中设置 IAM 策略后,我通过传递项目 ID 和存储桶名称尝试使用AddFirebaseAPI function 使用 postman。 但它为我返回一个未找到的错误。 我尝试了项目编号和 ID。 两者都给出了相同的错误。 关于使用 Postman 和 URL 的错误这应该可以通过使用解决

https://firebasestorage.googleapis.com/v1beta/projects/<projectid>/buckets/<bucketname>:addFirebase

下面是 playground 给你的 HTTP 调用的例子

POST 
https://firebasestorage.googleapis.com/v1beta/projects/<projectid>/buckets/<bucketname>:addFirebase?key=[YOUR_API_KEY] HTTP/1.1
Authorization: Bearer [YOUR_ACCESS_TOKEN]
Accept: application/json
Content-Type: application/json

它将返回您的存储桶实例。 也可能需要几分钟才能反映更改。

如果您在console.firebase.google.com中打开firebase-storage
它会给你一个警告说attach permission 如果单击它,问题应该会自动修复。

如果还没有解决,那就按照这个Github

如果您在控制台权限中找不到project number @gcp-sa-firebasestorage.iam.gserviceaccount.com firebasestorage.iam.gserviceaccount.com,请确保单击 firebase 存储中的attach permission对话框。

我的问题就是这样解决的。

暂无
暂无

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

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