如何从Google Drive向Firebase存储添加图像?

时间:2020-08-29 21:00:07

标签: swift firebase firebase-storage

对于我的iOS应用,我希望用户能够访问我提供的一组图像(但不能自己添加任何图像)。但是,我将在应用程序发布后将更多图像添加到该集合中,因此我认为配置此图像的最佳方法是将这些图像添加到Firebase存储中(该应用程序已在使用FirebaseAuthentication和Firestore)。这些图像将已经在Google云端硬盘中。我是否需要以编程方式将它们添加到Firebase Storage中,还是有更简单的方法?另外,是否有更好的方法在应用发布后向应用添加图像?谢谢!

2 个答案:

答案 0 :(得分:2)

如果要从Firestore Storage提供图像,则必须将图像自己上传到Storage。幸运的是,Drive和Storage都有API,因此将它们复制过来应该是一件相当简单的事情。

如果是唯一更改图像的人,我也考虑将其存储在Firebase Hosting中。这使它们可以通过Firebase Hosting的CDN供您的应用使用,这意味着您的用户可以更快地获得它们-对您来说cost略有增加。不过,在这种情况下,您需要将文件列表存储在已知位置的某个位置,因为在Firebase Hosting中没有公共API可以列出文件,就像存储一样。

答案 1 :(得分:1)

Franks的回答是正确的,但是我从物流和实施的角度考虑了更多的解决方案。我们不知道您的整个用例,因此无法给出具体答案,但让我介绍一个方案。

  1. 您有一个“管理员”应用程序。使用此应用程序,您可以拍照,然后将其上传到存储现有图像的Firebase存储中。这些图像的URL存储在Firestore中。可以在您的管理应用中添加,编辑或删除图像,当这种情况发生时,用户有权访问的图像也会被修改

  2. 用户有一个客户端应用程序。此应用程序使他们可以根据Firestore中存储的URL查看您上传到存储的图像。

讨论:

客户端应用观察到一个名为“ Available Images”的集合,看起来像这样

Available_Images
   image_0
      image_url: "points to some storage url"
      image_name: "the name of the image"
   image_1
      image_url: "points to another storage url"
      image_name: "this image name"

当您的管理应用添加,编辑或删除Available_Images节点中的图像时,客户端应用会自动收到此更改的通知(因为它们正在观察Available_Images集合),因此它们有权访问的图像也会自动更新。

您可以在Firebase控制台中修改数据-将图像上传到存储中,获取URL,然后将其添加到Available_Images中,但这是一个非常手动的过程。

拥有“管理员”应用可以使该过程非常自动化;拍照,单击或点击“上传图片”按钮,所有客户端都可以访问该新图片。

只是一个想法。