使用 OR 运算符的复合查询 flutter 和 firebase [重复]

2024-01-01

我正在创建一个 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(使用前将#替换为@)

使用 OR 运算符的复合查询 flutter 和 firebase [重复] 的相关文章

随机推荐