即使启用存储 API 后,Firebase 存储也会返回 412 错误

Ath*_*esh 5 storage google-cloud-storage firebase http-status-code-412 firebase-storage

我们已经使用 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"
  }
}
Run Code Online (Sandbox Code Playgroud)

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

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

我是否需要对存储权限进行更多更改?如何将现有存储桶数据与新更新一起使用?

小智 5

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

\n
    \n
  1. 在 Cloud Storage 中创建存储桶
  2. \n
  3. 获取您的项目名称和存储桶名称
  4. \n
  5. 转到这里:https://firebase.google.com/docs/reference/rest/storage/rest/v1beta/projects.buckets/addFirebase
  6. \n
  7. 按尝试它
  8. \n
  9. 填写您的项目名称和存储桶名称。按执行 \xc3\xa9 瞧!
  10. \n
\n

在这里查看我的屏幕截图

\n


Ath*_*esh 0

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

https://firebasestorage.googleapis.com/v1beta/projects/<projectid>/buckets/<bucketname>:addFirebase
Run Code Online (Sandbox Code Playgroud)

这是 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
Run Code Online (Sandbox Code Playgroud)

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