firebase - Flutter中的Firebase查询不返回结果
问题描述
我的颤振应用程序中有 2 个查询引用了 firebase 中的相同信息。一个由用户的 id 过滤,另一个由患者的 id 过滤。这两个查询都有效,但只有通过 uid 过滤的查询才能与 orderby 一起使用。为什么第二个查询不起作用?
按用户 ID 过滤的查询
FirebaseFirestore.instance
.collection('alerts')
.where('access', arrayContains: FirebaseAuth.instance.currentUser.uid)
.orderBy('createdAt', descending: true)
.snapshots(),
按患者 ID 过滤的查询
FirebaseFirestore.instance
.collection('alerts')
.where('patientId', isEqualTo: patient.id)
//.orderBy('createdAt', descending: false)
.snapshots(),
我在此查询中注释掉了 orderBy,因为它导致它不返回任何结果。如果不使用 orderBy,我会得到我想要的结果,而不是我想要的顺序。
如果该警报应与该用户相关联,则警报有一个名为“访问”的字段,其中包含用户 ID。警报上的“患者 ID”将警报与特定患者相关联。第一个查询返回用户应该查看的所有警报。第二个查询仅返回特定患者的警报。
解决方案
您需要在 Firebase 中为这两个查询创建索引。
推荐阅读
- java - 谷歌 api 错误 - 无法让谷歌登录工作
- python - 在进程之间通信资源锁的最佳方式
- c# - 如果节点已经存在,如何停止 neo4j 创建节点
- multithreading - 频道中出现 CoroutineContext 错误
- reactjs - 我如何默认检查反应中的单选按钮?
- scala - Spark Dataset joinWith API 给出错误结果
- python - volatile 已被删除,现在没有效果。改用`with torch.no_grad():`。输入变量=变量(输入,易失性=真)
- javascript - 如何使用 Composer 安装的 Javascript 或 CSS 文件?
- android - React Native - 如何获取选择器数据
- bash - 如何使用 bash 读取 yaml 或 env 文件