Flutter:如何在 [Firebase] 中使用 OR 条件获取流查询

Posted

技术标签:

【中文标题】Flutter:如何在 [Firebase] 中使用 OR 条件获取流查询【英文标题】:Flutter : How to get Stream Query with OR condition in [Firebase] 【发布时间】:2021-12-07 01:32:04 【问题描述】:

我想使用多个 where(); 方法在颤振中实现 OR 条件,但这会返回 AND 条件。

以下是我的查询代码

  Future<Stream<QuerySnapshot>> getOrders() async  
    return FirebaseFirestore.instance
        .collection("Orders")
        .orderBy("timestamp")
        .where("isCredentialUploaded", isEqualTo: true),
        .where("isTransactionDone", isEqualTo: true)
        .snapshots();
  

但这使得AND条件,像这样

if(isCredentialUploaded && isTransactionDone)

有什么方法可以在 Firebase Firestore 中获取 OR 条件?

我想要的结果:

if(isCredentialUploaded || isTransactionDone)

【问题讨论】:

【参考方案1】:

在Firebase & Flutter的官方文档中,我们注意到在使用查询后我们必须使用get()而不是snapshot()

试试这个代码:

Future<Stream<QuerySnapshot>> getOrders() async  
return FirebaseFirestore.instance
    .collection("Orders")
    .orderBy("timestamp")
    .where("isCredentialUploaded", isEqualTo: true),
    .where("isTransactionDone", isEqualTo: true)
    .get();

【讨论】:

亲爱的@Z.Ihab 我说的是firebase中的OR条件。 现在我明白你了,看看这个对你很有帮助[link] (***.com/a/63092557/17170163)

以上是关于Flutter:如何在 [Firebase] 中使用 OR 条件获取流查询的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Flutter 中使 StatusBar 对 Android 透明

如何在 Cloud Functions for Firebase 中使 HTTP 请求异步/等待?

如何在 Flutter 中使 Expanded 中的文本可滚动

如何在 Flutter 中使我的单选按钮完全填充活动颜色的颜色而没有白色边框?

Firebase 消息传递仅在发布版本中使应用程序崩溃

Flutter:如何在 Flutter 中为 Firebase (FCM) 注册令牌订阅ToTopic