我尽力使用搜索功能并没有真正得到我正在搜索的结果。
目前,我尝试复制一种用于在卡组上刷卡的功能。配置文件通过 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}
提前致谢
安德烈亚斯 :)