添加Firebase存储桶

时间:2019-08-23 21:55:53

标签: android firebase google-cloud-storage firebase-storage

在我的项目中,我具有默认存储桶和一个额外的存储桶。

在尝试添加新存储桶时,一切似乎都不错,但是如果我尝试从Firebase控制台访问它,就不见了。没有列出。

但是,如果我使用Google Cloud Console,则存储桶在那里,但是我无法从我的应用程序或Firebase控制台访问它。

如果我尝试从应用程序访问存储桶,则会出现此错误:

  

原因:java.io.IOException:{“错误”:{“代码”:400,
  “ message”:“权限被拒绝。无法访问存储桶ubvplayersdata。   请通过访问存储来为您的存储桶启用Firebase存储   标签,然后确保您有足够的资源   正确配置资源的权限。”,“状态”:   “ ACCESS_BUCKET”}}

我使用规则版本2来列出存储桶和Blaze计划。

存储桶的gs:gs://ubvplayersdata

我想念什么?

编辑: this answer中的链接使我意识到Google Cloud Console中没有firebase-storage@system.gserviceaccount.com角色Storage Admin,但是即使手动设置了它们,也没有尝试将存储桶从Google Console导入到Firebase控制台仍然无法正常工作。

更新: 与Firebase支持人员联系后,他们告诉我在修复了后端问题后,问题确实得到解决。

2 个答案:

答案 0 :(得分:1)

我不确定控制台,但是从应用程序尝试指定默认值以外的新存储桶的名称:

  

//获取非默认存储桶FirebaseStorage storage =   FirebaseStorage.getInstance(“ gs:// my-custom-bucket”); StorageActivity.java

here you can read more about this

确保为新存储桶设置安全规则! 这里的链接可能会有所帮助:

add the missing permission in the IAM & Admin

File Path structure

答案 1 :(得分:1)

您将需要导入在Cloud控制台中创建的存储桶,以与Firebase一起使用,否则它将不会显示在Firebase控制台中,并且您将无法从移动客户端访问它。

在Firebase存储对象浏览器(Firebase控制台)中:

  1. 点击右上角的溢出菜单(三个垂直点)
  2. 将单选按钮更改为“导入现有的Google Cloud Storage存储桶”
  3. 选择另一个存储桶。
  4. 接受默认的安全规则(您将在以后更改这些规则)