[英]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。
我是否需要对存储权限添加更多更改? 如何将现有存储桶数据用于新更新?
我只是为自己解决了这个问题。
如本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.