gpt4 book ai didi

Flutter-如何在firebase查询中使用逻辑AND以及如何更新数据?

转载 作者:行者123 更新时间:2023-12-03 02:46:31 25 4
gpt4 key购买 nike

我是 Flutter 的新手,在我的查询中寻找某种多重 where 子句或逻辑 AND 运算符,尝试了几种方法但没有一种适合我。我正在过滤 ID 与当前登录用户 ID 匹配的用户。其次,firestore 中有一个bool 字段status,我也想过滤“status”==false。即

where userid=="currently logged in userid" && status==false

  Stream<QuerySnapshot> getData() async*{
FirebaseUser firebaseUser = await FirebaseAuth.instance.currentUser();
yield* Firestore.instance.collection('order').where("userid", isEqualTo: firebaseUser.email.toString()).snapshots();
}

其次,我想在按下按钮时将此 approve = false 更新为 approve = true 我该怎么做?我的 IDE 在其下方显示了一条红线。

onPressed: () async {
await db.collection('booking_tbl').document(doc.documentID).updateData('approve':true);
},

完整代码在这里:

  StreamBuilder<QuerySnapshot>(
stream: db.collection('booking_tbl').snapshots(),
builder: (context, snapshot) {
if (snapshot.hasData) {
return Column(
children: snapshot.data.documents.map((doc) {
return ListTile(
title: Text("Press the button to confirm booking"),
trailing: IconButton(
icon: Icon(Icons.verified_user),
color: Colors.green,
onPressed: () async {
await db.collection('booking_tbl').document(doc.documentID).updateData('approve':true);
},
),
),
}).toList(),
);
} else {
return SizedBox();
}
}),

最佳答案

要执行和查询,您必须执行以下操作:

yield* Firestore.instance.collection('order').where("userid", isEqualTo: firebaseUser.email.toString()).where("status", isEqualTo: false).snapshots();

这将执行和查询,这意味着如果文档包含此用户 ID AND 状态为 false,那么您将检索该文档。


关于这里的错误:

onPressed: () async {
await db.collection('booking_tbl').document(doc.documentID).updateData('approve':true);
},

updateData() 将 map 作为参数,执行以下操作:

onPressed: () async {
await db.collection('booking_tbl').document(doc.documentID).updateData({'approve':true});
},

关于Flutter-如何在firebase查询中使用逻辑AND以及如何更新数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62305396/

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