如何以编程方式集成/访问现有GCP存储桶到Firebase Swift App?

时间:2019-08-26 13:43:16

标签: ios swift google-cloud-storage firebase-storage

我使用Node.js库在GCP存储上创建存储桶。稍后,我想从Firebase iOS应用访问这些GCP存储桶。但是,我不能。尝试从iOS应用访问我现有的GCP存储桶时,出现以下错误:

Your bucket has not been set up properly for Firebase Storage. Please visit https://console.firebase.google.com/project/MY_PROJECT/storage/files to automatically repair this issue and then retry. If the issue lasts longer than five minutes, you may have insufficient permissions to repair the project. You can check your permissions by visiting https://console.firebase.google.com/iam-admin/iam/project?project=MY_PROJECT."

似乎我需要转到Firebase存储控制台,并 手动 将现有的Google Cloud Storage存储桶导入到我的Firebase项目中(建议here) 。

如何将现有的GCP存储桶以编程方式导入到iOS Firebase项目中?或者,是否可以使用Firebase存储库从我的iOS应用访问现有GCP存储桶并对其执行操作?

注意:我正在执行Blaze计划。 firebase-storage@system.gserviceaccount.com作为存储管理员添加到了我现有的GCP存储桶中,就像默认的Firebase存储桶一样。

这是Firebase控制台的屏幕截图,说明了这种情况。 Firebase Screenshot

2 个答案:

答案 0 :(得分:0)

我找到了一个谈论Todorov M - iOS animations by tutorials的文档。它说:

  

用于Firebase的Cloud Storage与Google Cloud Platform紧密集成。用于Cloud Storage的Firebase SDK将文件直接存储在Google Cloud Storage存储桶中。

意味着在尝试从应用程序调用GCS存储桶时应该不会有问题。有多种方法可以访问您的Cloud Storage存储桶中存储的数据,具体取决于您要执行的操作。

对于集成本身,我发现了这个The Firebase integration with Google Cloud Platform。是的,这里提到您需要指定存储桶的位置。

提到了

  

对存储的读取和写入访问受到限制,因此只有经过身份验证的用户才能读取或写入数据

这意味着您必须在应用程序内实施身份验证过程。还要检查GCS buckets and Firebase Quickstart,以便我们也可以摆脱insufficient permissions部分。

希望这会有所帮助。

编辑:也许我忘了提及Firebase authentication。设置它们之后,您的应用程序(和您的用户)将可以访问您的GCS存储桶。 我还发现了一个非常相似的案例Security Rules

答案 1 :(得分:0)

遇到相同的问题,恐怕目前没有可用的编程解决方案。

即使是通过云端功能从Admin SDK创建存储桶,也不会自动将其附加到Firebase项目,这是应用某些安全规则并在客户端使用它所必需的。

附件过程本身看起来像一个黑匣子。在Firebase控制台中选择存储区和进行流程验证之后,IAM没有明显变化。

因此,由于以下原因,我不建议在Firebase项目中使用自定义存储桶

  • 似乎无法以编程方式将自定义存储桶附加到Firebase项目,唯一的工作方法是通过Web控制台手动添加
  • 关于非常有前途的admin.securityRules()函数名称空间,这是相当新的内容(到2019年底),文档缺少一些详尽的示例。