我正在创建一个 flutter 应用程序,它应该查询 Firestore 集合并在满足两个条件时返回结果。这是我的代码:
Stream<List<FormQuestions>> get question {
return someCollection
.where('myQUestion', isEqualTo: 'nameQuestion')
.snapshots()
.map(_someQuestionListFromSnapshot);
}
如果我只使用一个 .where() 条件,它就可以正常工作。但是对于两个,尽管我有满足这两个条件的文件,但它没有给出任何结果。我希望它返回多个 .where() 条件,如下所示:
Stream<List<FormQuestions>> get question {
return someCollection
.where('myQUestion', isEqualTo: 'nameQuestion')
.where('myQuestion', isEqualTo: 'ageQuestion')
.snapshots()
.map(_someQuestionListFromSnapshot);
}
有没有办法添加 OR(||) 运算符,或者如何执行此操作才能获得“nameQuestion”和“ageQuestion”的结果?
请协助。谢谢。
Firestore 不支持常规 OR 查询,但它支持IN 查询 https://firebase.google.com/docs/firestore/query-data/queries#in_and_array-contains-any您可以用它来实现您所需要的。
你的查询看起来像citiesRef.where('country', 'in', ['USA', 'Japan']);
someCollection
.where('myQUestion', whereIn: ['nameQuestion', 'ageQuestion'])
另请参阅:
-
Firebase Firestore - OR 查询 https://stackoverflow.com/questions/46726673/firebase-firestore-or-query,其中的答案涵盖了 OR 条件的各种变化。
- Flutter 参考文档where method https://pub.dev/documentation/cloud_firestore/latest/cloud_firestore/Query/where.html
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)