【问题标题】:Flutter Profile Matching App - Cloud Firestore Data Modeling | How to Query to avoid unnecessary reads for already swiped UID´sFlutter Profile Matching App - Cloud Firestore 数据建模 |如何查询以避免对已经刷过的 UID 进行不必要的读取
【发布时间】:2020-07-02 14:48:53
【问题描述】:

我尽力使用搜索功能,但没有真正得到我正在搜索的结果。

目前,我尝试复制一种用于在卡组上刷卡的功能。配置文件通过 Firebase Firestore 后端加载。问题是,由于 geoFireStore 查询,我在特定半径内每次加载都会得到一大堆文档,我想直接在查询中减少读取量。

所以我想要实现的是,当我(向左或向右)刷一次个人资料时,我再也不想在查询中阅读它了。另外,为了保存读取,我不想在客户端做这个,应该直接在查询中完成。

目前的 Firestore JSON 结构:

  • 用户(集合)
    • UID [文档]
      • 姓名
      • 活跃
      • 匹配{地图}

如果匹配地图不包含自己的 UID(如果存在为 null)则在查询中读取,否则当地图匹配下的其他用户配置文件中存在自己的 UID 时(布尔值:喜欢或不喜欢的 true 或 false)然后不显示为查询结果。

我的流是这样构建的:

return geo
    .collection(
        collectionRef:
            friendrCollection.where("active", isEqualTo: true).where("match.$uid", isNull: true))
    .within(
        center: geoFirePoint,
        radius: suchRadius,
        field: 'position',
        strictMode: false)
    .map(_friendrsGPSListFromSnapshot);

}

我现在已经为此工作了 3 周,但没有得到我想要的结果:D

-我应该留在 firestore 还是更好的实时数据库? -我需要如何构造数据以使“除外”查询正常工作?

现在是这样的:

集合:用户 --> 文档:UID --> Match{ownUID}

提前致谢

安德烈亚斯 :)

【问题讨论】:

    标签: firebase flutter google-cloud-firestore geofirestore


    【解决方案1】:

    我仍然没有找到合适的解决方案来减少 firestore 查询中不必要的配置文件读取次数。

    有没有人想办法处理这部分?

    我发现的唯一方法是在客户端查找现有匹配项(额外的 firestore 集合),但这意味着我总是必须加载整个配置文件包并在之后将它们扔掉:(

    谢谢!

    安德烈亚斯

    【讨论】:

      猜你喜欢
      • 2019-03-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-11
      • 2021-11-02
      • 1970-01-01
      • 1970-01-01
      • 2014-08-29
      相关资源
      最近更新 更多