0

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

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

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

目前 Firestore JSON 结构:

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

如果匹配地图不包含自己的 UID(如果存在为空),则在查询中读取,否则当地图匹配下的其他用户配置文件中存在自己的 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还是更好的实时数据库?- 我需要如何构建数据以使“除外”查询正常工作?

现在是这样的:

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

提前致谢

安德烈亚斯 :)

4

1 回答 1

0

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

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

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

谢谢!

安德烈亚斯

于 2020-04-11T08:35:10.933 回答