Флаттер |Как добавить данные в существующий документ в firestore - PullRequest
0 голосов
/ 28 мая 2018

Я использую Firestore для хранения данных своего приложения-флаттера, и я создал функцию, которая автоматически создает документ в Firestore после входа пользователя в систему Моя база данных Firestore

Теперь я хочупользователь, когда он заполняет эту форму, данные будут добавлены в тот же документ, где существует электронная почта пользователя.

[ RaisedButton(
              child: Text("Submit"),
              onPressed: () {
               final CollectionReference users = Firestore.instance.collection('users');
                Firestore.instance
                    .runTransaction((Transaction transaction) async {
                  CollectionReference reference =
                  Firestore.instance.collection('users');

                  await reference
                      .add({"fullname": nameController.text, "PhoneNumber": phoneController.text, "adresse": adressController.text});
                  nameController.clear();
                  phoneController.clear();
                  adressController.clear();

                });},][2]

Я пробовал этот код, но он добавляет новый документ.

Ответы [ 3 ]

0 голосов
/ 28 мая 2018

Рекомендуется использовать транзакцию.Убедитесь, что ссылка на документ является ссылкой на файл, который вы хотите обновить.

            Firestore.instance.runTransaction((transaction) async {
              await transaction.update(
                  documentReference, data);
            };

Это обеспечит обновление в том случае, если это делают многие клиенты.

В случае одновременного редактирования Cloud Firestore снова запускает всю транзакцию.Например, если транзакция читает документы, а другой клиент изменяет какой-либо из этих документов, Cloud Firestore повторяет транзакцию.Эта функция гарантирует, что транзакция выполняется на актуальных и согласованных данных.

Подробнее здесь

0 голосов
/ 10 марта 2019

Попробуйте .setData({"fullname": nameController.text, "PhoneNumber": phoneController.text, "adresse": adressController.text}, merge: true).

0 голосов
/ 28 мая 2018

Укажите имя документа перед обновлением базы данных.

Firestore.instance.collection('Products').document('Apple').updateData({ 'price': 120, 'quantity': 15 });

Здесь мои данные о цене и количестве являются числами.Если у вас есть Strings, поместите туда строковые значения.

...