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



我们已经使用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-账户

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

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

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

  1. 在云存储中创建存储桶
  2. 获取您的项目名称和bucket名称
  3. 转到此处:https://firebase.google.com/docs/reference/rest/storage/rest/v1beta/projects.buckets/addFirebase
  4. 按下Try IT
  5. 填写你的项目名称和bucket名称。按下Executeévoila

点击此处查看我的屏幕截图

如本github中所述。

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

如果您在将服务帐户(service-@gcp-sa-firebasestorage.iam.gserviceaccount.com(添加到项目中时遇到问题,则可能是Firebase的云存储尚未创建该帐户。

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

如果您在console.firebase.google.com中打开firebase-storage
它会提示您attach permission。若你们点击它,问题应该会自动解决。

如果它不能解决问题,那么就遵循这个Github

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

我的问题就是这样解决的

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

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

下面是操场给你的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

它将返回您的bucket实例。此外,反映这些变化可能需要几分钟时间。

最新更新