увеличить значение в firestore с помощью флаттера - PullRequest
0 голосов
/ 30 марта 2020

Привет я пытаюсь увеличить значение при нажатии кнопки, если данные доступны в FireStore, это мой код blo c, если у вас есть предложения lmk, пожалуйста,

 int q = 0;

    final snapShot = await Firestore.instance.collection('cart').document("LIihBLtbfuJ8Dy640DPd").get();
    if(snapShot.exists){
      q=q+1;


    }
    Firestore.instance.runTransaction((Transaction transaction) async {
      await transaction.update(
          Firestore.instance
              .collection("cart")
              .document("LIihBLtbfuJ8Dy640DPd"),
          {
            foodItem.name: {
              'itemName': foodItem.name,
              'imgUrl': foodItem.imageAssetPath,
              'itemPrice': foodItem.price,
              'quantity': q,
            }
          });

    });

enter image description here

1 Ответ

0 голосов
/ 30 марта 2020

Прежде всего, вам необходимо получить нужный документ и его элементы для обновления документа полей. В вашем примере это количество.

Сначала получите документ:

Firestore.instance
    .collection('cart')
    .document('documentID')
    .get()
    .then((DocumentSnapshot ds) {
  // use ds, parse ds then access the quantity
});

После выполнения работы вам необходимо обновить поле. К счастью, в экземпляре firestore есть функция updateData.

    db.collection('cart')
    .document('documentID')
    .updateData({'quantity': someQuantity});

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...