J'utilise firestore pour stocker les données de mon application flutter, et j'ai créé une fonction qui crée automatiquement un document dans firestore après la connexion de l'utilisateur Ma base de données Firestore
Maintenant, je veux que l'utilisateur remplisse ce formulaire, les données seront ajoutées dans le même document où existe l'e-mail de l'utilisateur.
[ 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]
J'ai essayé ce code mais il ajoute un nouveau document.
Spécifiez le nom du document avant de mettre à jour la base de données.
Firestore.instance.collection('Products').document('Apple').updateData({ 'price': 120, 'quantity': 15 });
Ici, mes données de prix et de quantité sont des nombres. Si les vôtres sont des chaînes, placez-y des valeurs de chaîne.
La meilleure pratique consiste à utiliser la transaction. Assurez-vous que la référence du document est une référence à un fichier que vous souhaitez mettre à jour.
Firestore.instance.runTransaction((transaction) async {
await transaction.update(
documentReference, data);
};
Il s'assurera que la mise à jour se déroule dans l'ordre au cas où de nombreux clients le feraient.
Dans le cas d'une modification simultanée, Cloud Firestore exécute à nouveau l'intégralité de la transaction. Par exemple, si une transaction lit des documents et qu'un autre client modifie l'un de ces documents, Cloud Firestore réessaie la transaction. Cette fonctionnalité garantit que la transaction s'exécute sur des données à jour et cohérentes.
Plus d'infos ici