我在Cloud Firestore中有一个文档,我正在听更新。它有2个字段,有一个字段描述和一个图片字段。图片约为0.2 mb,描述仅需几句话。我想知道如果我更改了文档中的描述会发生什么,我想知道addSnapshotListener实际上是下载文档的新副本还是仅下载已更改的字段。
通过查看Xcode中下载了多少数据,我确实看到了,该文档的新副本被下载了。
这根本没有效率,因为图片字段很少更改,因此在我的应用程序中可能仅更改描述。
有没有一种优化方法?
答案 0 :(得分:2)
有没有一种优化方法?
是的!不要那样做。
Firestore(和实时数据库)并非旨在按字段存储图像或大型数据集。
您应该浏览Storage并保留对Firebase存储器中存储的项目的引用(url)。
Cloud Storage专为需要存储和服务的应用程序开发人员打造 用户生成的内容,例如照片或视频。
如果需要更新或更改Firestore中的字段,利用存储空间,您将只处理少量数据,而不是整个图像。
回答问题;如果您从Firebase中读取文档,它将读取该文档及其子数据。
这是“存储文档”的链接,其中显示了如何捕获对上传到存储中的项目的引用。
答案 1 :(得分:0)
如果要自动将图像同步到所有客户端并使它们脱机使用,只需将它们放在单独的文档中。
// Store your small, frequently changing text here:
db.collection('users').doc(userId).set({email: vince@example.com})
// Store your image here:
db.collection('user_profile_pic').doc(userId).set({data: <imagedata>})