gpt4 book ai didi

flutter - 如何添加 OR 条件来 flutter Firebase 查询

转载 作者:行者123 更新时间:2023-12-03 04:41:45 26 4
gpt4 key购买 nike

我正在尝试向我的 flutter firebase 查询添加一个 OR 条件。

这是我的代码,但我想检查 receiver_name 在哪里等于 kim 或者 sender_name 等于 kim

StreamBuilder( 
stream: Firestore.instance.collection("payments").where("receiver_name", isEqualTo: userActive).snapshots(),
builder: (context, snapshot){


return Container ( child:ListView.builder(
shrinkWrap: true,
itemCount: snapshot.data.documents.length,
padding: EdgeInsets.all(0),
controller: ScrollController(keepScrollOffset: false),
itemBuilder: (context, index){

DocumentSnapshot documentSnapshot = snapshot.data.documents[index];

最佳答案

正如@ChristopherMoore 评论的那样,Firestore 无法实现多个字段的 OR 条件。执行单独的查询并在客户端合并它们是最常见的解决方法。有关更多信息,请参阅:

之所以不将您的问题标记为与这些问题重复,是为了指出使用单个查询实现相同结果的另一种方法。


为每个文档添加一组参与者

如果您将数组字段 participants 添加到文档中,其中包含发送方和接收方的 UID 字段,则您可以使用 array-contains query获取用户是发送者或接收者的所有付款。

要将 UID 添加到此类数组,请务必使用 array-union operator :

documentRef.updateData({"participants": FieldValue.arrayUnion("uidOfUser")});

然后要查询它,您将使用:

collectionRef.where('participants', arrayContains: "uidOfUser")

关于flutter - 如何添加 OR 条件来 flutter Firebase 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63092249/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com