web-dev-qa-db-ja.com

フラッター| Firestoreの既存のドキュメントにデータを追加する方法

私はフラッターアプリケーションのデータを格納するためにfirestoreを使用しており、ユーザーがログインすると自動的にfirestoreにドキュメントを作成する関数を作成しました My 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]

このコードを試しましたが、新しいドキュメントが追加されました。

9
STEP PLUS

データベースを更新する前にドキュメント名を指定してください。

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

ここに私の価格と数量のデータは数字です。文字列の場合は、そこに文字列値を入力します。

1
Vinoth Kumar

ベストプラクティスはトランザクションを使用することです。ドキュメント参照が、更新するファイルへの参照であることを確認してください。

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

多くのクライアントが更新を行う場合に備えて、更新が確実に行われるようにします。

同時編集の場合、Cloud Firestoreはトランザクション全体を再度実行します。たとえば、トランザクションがドキュメントを読み取り、別のクライアントがそれらのドキュメントを変更した場合、Cloud Firestoreはトランザクションを再試行します。この機能により、トランザクションは最新の一貫したデータで実行されます。

詳細 ここ

1
Tree