我正在制作一个可在Firestore中切换布尔值的测试应用程序。现在我检索该值,这是正确的。但是,当我在Firestore中点击将值更改为false时该怎么办?
StreamBuilder<List<Product>>(
stream: ProductService().products,
builder: (context, snapshot) {
if (snapshot.hasData) {
return DataTable(
columns: [
DataColumn(
label: Text('isActive'),
),
],
rows: snapshot.data.map((products) {
return DataRow(cells: [
DataCell(
Switch(
value: products.isActive,
onChanged: (bool notActive) {
setState(() {
products.isActive = notActive
});
}),
),
]);
}).toList(),
);
}
return Container();
});
在FireStore
中创建产品值“ isActive”时始终为true。
答案 0 :(得分:0)
对于ProductService
,您必须定义如何在服务的FireStore中设置值。
有关如何在FireStore中更新文档的信息,请参阅我的代码。
final Firestore db = Firestore.instance;
DocumentReference docRef = db.collection('COLLECTION_NAME').document('DOCUMENT_NAME');
Future<void> toggleActive(bool active) {
return docRef.setData({
'isActive': active,
}, merge: true);
}
希望有帮助。