我应该将图片上传到 Cloud Firestore 还是 Firebase Storage?

Gov*_*iyo 9 firebase flutter firebase-storage google-cloud-firestore

可能是愚蠢的问题,但需要像我这样的初学者清除。

我知道如何在 Firestore 数据库上上传图片,但我想而不是使用FirebaseStorage为什么我们不使用 base64 字符串上传图片,这可能很简单?或者对字符串长度有一些限制?

~ PS:我还没有尝试过使用 base64 字符串在 Firestore 上上传图像。

cre*_*not 14

云计算公司的FireStore“使用和限制”的文件规定了“为一个文件最大尺寸”是1 MiB (1,048,576 bytes)
这是用于图像的少量数据,仅允许在单个文档中存储低分辨率图像。您可以将图像存储在多个文档中作为一种解决方法,但是,这不必要地复杂化,而Firebase Storage完美地解决了这个问题。

此外,在聆听文档中的任何更改时,您将下载整个图像(整个文档)。如果您有一个包含image (base64 string)likes (int count)字段的文档,并且您尝试侦听 的实时更新,则likes每次客户端都会下载完整图像。

因此,Firebase Storage很可能是您要搜索的内容,因为您可以存储任何大小的对象(与您的容量一样大),它为您提供下载 URL 的,并且您无需处理任何编码或解码(尽管Cloud Firestore 允许blob's,即字节数据,以及)。


Ron*_*TLV 5

与 Firebase Storage 相比,在 Firestore 上存储文件(作为二进制数据)没有任何好处。

Firestore 主要针对读写和删除收费,每月免费存储空间仅为 1 GB!!!如果做得不好,这可能是一个严重的陷阱。阅读我们如何在不到 72 小时内在 Firebase 上花费 3 万美元

Firebase Storage 是迄今为止存储文件的最佳选择,几乎没有文件大小限制且价格便宜得多,然后只需将文件 url 保存到 Firestore 即可。

  • 您还掩盖了重要的一点:可以使用 URL 访问存储在 Firebase 存储上的文件 - 不需要序列化/反序列化代码。 (2认同)

Suk*_*khi 5

从技术角度来看,是的,您始终可以存储 (base64) 字符串并稍后使用它来检索图像。但是,base64 字符串最多比字节数据高 30%。因此,如果您使用 base64,您将失去性能和存储空间。

其次,使用 FirebaseStorage 还有另一个优势。就是在手机app在后台的时候上传图片。作为开发人员,我们不必为此编写任何特定代码。

@creativecreatorormaybenot已经指出了 Cloud Firestore 和 Firebase Storage 的限制

我的结论是:与 base64 相比,更喜欢 Firebase 存储。