在Flutter中查询后如何更新Firestore文档

时间:2020-07-10 21:00:10

标签: flutter google-cloud-firestore

在查询要更新的文档后,我试图弄清楚如何更新文档。这是我想出的代码:

Firestore.instance.collection("Social_Posts").where(data["postTitle"], isEqualTo: "postTitle").where(data["postContent"], isEqualTo: "postContent")
                  .snapshots()
                  .listen((event) {print("hh");});

每当执行此查询以查找正确的文档时,我都想通过在其上添加数字来更新该文档。

2 个答案:

答案 0 :(得分:2)

可以从内部更新文档。最简单的方法肯定是使用documentID并增加值Firestore具有特殊属性 FieldValue.increment(1)< / strong> 。使用此功能,您可以轻松地增加字段。

假设您要在文档中增加1的字段是“ numberField”。

使用异步/等待样式的更新代码:

$("#fileupload" + id_var).fileupload({

numberField将增加,而无需进行额外的调用来知道当前值。

编辑:您在 .where()方法

中犯了一个错误

答案 1 :(得分:1)

您可以通过使用event.documents[0].documentID(假设您的查询仅返回一个文档),然后使用Firestore.instance.collection("Social_Posts") .where(data["postTitle"], isEqualTo: "postTitle") .where(data["postContent"], isEqualTo: "postContent") .snapshots() .listen((event) { Firestore.instance .collection("Social_Posts") .document( event.documents[0].documentID) .updateData( updateEvent) //Add here the new object you want to .whenComplete(() { // You can add your desire action after the row is updated } }); 来使用从侦听函数内部获取的文档ID,然后从Firestone包调用updateData方法。 / p>

您的代码可能如下所示:

python3 mo_onnx.py --input_model SSD_nms.onnx --input inputs,top_k_per_class,nms_iou,nms_score --input_shape [1,3,224,224],[1],[1],[1]

您可以查看包裹页面以获取更多信息,https://pub.dev/packages/cloud_firestore

如果您想查看有关如何执行CRUD功能的示例,则可以检查以下存储库:https://github.com/sayed3li97/flutter_firestore_crud