我们已经使用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。
是否需要对存储权限添加更多更改?如何将现有存储桶数据与新的更新一起使用?
我只是为自己解决了这个问题。
- 在云存储中创建存储桶
- 获取您的项目名称和bucket名称
- 转到此处:https://firebase.google.com/docs/reference/rest/storage/rest/v1beta/projects.buckets/addFirebase
- 按下Try IT
- 填写你的项目名称和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实例。此外,反映这些变化可能需要几分钟时间。