【问题标题】:addSnapshotListener swift firestore behaviouraddSnapshotListener 快速 Firestore 行为
【发布时间】:2019-11-05 00:18:36
【问题描述】:

我在 Cloud Firestore 中有一个文档,我会在其中收听更新。它有 2 个字段,一个字段描述和一个图片字段。图片大约 0.2 mb,描述是几句话。我想知道如果我对文档中的描述进行更改会发生什么,我想知道 addSnapshotListener 是否真的下载了文档的全新副本,或者只是下载了已更改的字段。

我确实看到,通过查看在 Xcode 中下载了多少数据,下载了一份新的文档副本。

这根本没有效率,因为图片字段很少更改,只有描述可能会在我的应用程序中更改。

有没有办法优化这个?

【问题讨论】:

    标签: swift firebase google-cloud-firestore


    【解决方案1】:

    有没有办法优化这个?

    是的!不要那样做。

    Firestore(和实时数据库)并非旨在为每个字段存储图像或大型数据集。

    您应该浏览 Storage 并保留对存储在 Firebase 中的项目的引用 (url)。

    Cloud Storage 专为需要存储和服务的应用开发者打造 用户生成的内容,例如照片或视频。

    如果您需要更新或更改 Firestore 中的字段,则通过利用存储,您只需处理少量数据,而不是整个图像的价值。

    回答问题;如果您从 Firebase 读取文档,它会读取该文档及其子数据。

    这里是存储文档的链接,它显示了如何捕获对上传到存储的项目的引用。

    https://firebase.google.com/docs/storage/ios/upload-files

    【讨论】:

      【解决方案2】:

      如果您想将图像自动同步到所有客户端并使其离线可用,只需将它们放在单独的文档中即可。

      // 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>})
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多