ionic-framework - 在 Firestore 中以较少的读取获取好友列表数据

标签 ionic-framework google-cloud-firestore

我的项目在 Ionic3、Angular2 和 Firestore 中。
由于 Firestore 成本取决于读取次数,因此我有以下担忧。

我有以下用户结构。

User(collection)
    ->User ID(Doc)   -> Name:
                     -> Photo URL:
                     -> Friend (collection)
                            ->Friend ID (Doc) -> statue: Active
                            ->Friend ID (Doc) -> statue: Inactive
    ->User ID(Doc)  -> ...

按照这个结构,如果我想显示我的 friend 列表......
  • 我会查询Friend收集所有活跃的 friend 。 (这是一读)
  • 我必须遍历(读取)所有 ID 才能获取它们的 NamePhoto URL .

  • 所以如果一个用户有 200 个 friend 。仅显示数据就要花费我 200 次读取。
    有没有更好的办法?

    最佳答案

    一个解决方案是使用 database denormalization :您在 friend 文档中复制了您需要的信息(例如姓名和照片 URL)。这样,在读取时,您将拥有用于显示所需内容的所有数据。当然,有一个权衡。在 friend 更新时,您必须更新所有相关文档或使用过时的信息。但是,您的用例似乎读取多于写入。因此,应用非规范化应该不是什么大问题。

    关于ionic-framework - 在 Firestore 中以较少的读取获取好友列表数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47040243/

    相关文章:

    dart - 如何使用 future 的值填充流?

    javascript - 如何打开 ionic 列表中的特定 ionic 项目

    javascript - 如何使用angular js验证 ionic 形式

    ios - 如何将 Ubuntu 上的 Ionic 项目导出到 iOS?

    iOS webrtc 应用程序使用 cordova-plugin-iosrtc : video element issues

    ios - 如何在 TableViewController 中显示 Firestore 文档名称?

    unit-testing - 用于测试的模拟 ionic-native

    database - Cloud Firestore 文档锁定

    swift - 在 Firebase 中将本地化日期转换为时间戳

    reactjs - 从 Firestore 获取数据后如何设置状态