Je voudrais obtenir une valeur d'entrée de TextFormfield. Et puis je veux le prendre dans Firebase.
Si j'en ai trois TextFormfield (nom_telad_nom/anniversaire/anniversaire), comment puis-je obtenir cette valeur et les jeter dans Firebase?
Vous devez utiliser un TextEditingController
par exemple:
TextEditingController lastNameController = TextEditingController();
TextEditingController firstNameController = TextEditingController();
TextEditingController birthdayController = TextEditingController();
Puis à l'intérieur de TextFormField
:
child: TextFormField(
controller: firstNameController,
decoration: InputDecoration(
labelText: "Enter First Name",
enabledBorder: OutlineInputBorder(
borderRadius: BorderRadius.circular(10.0),
),
// The validator receives the text that the user has entered.
validator: (value) {
if (value.isEmpty) {
return 'Enter last Name';
}
return null;
},
),
Créez 3 champs, attribuez chacun controller
à chaque champ. Ensuite, pour accéder à la valeur de chaque controller
, vous devez utiliser la propriété text
Propriété:
DatabaseReference dbRef = FirebaseDatabase.instance.reference().child("Users");
dbRef.child("id").set({
"firstName": firstNameController.text
})
Vérifie ça:
Il y a 2 façons selon votre cas d'utilisation:
TextField
widget a une méthode de rappel onChange
que vous pouvez utiliser pour obtenir de la valeur une fois la valeur modifiée.
TextField
a une propriété controller
, auquel vous pouvez asservir TextEditingController
instance et l'utiliser plus tard sur l'endroit où vous en avez besoin (par exemple sur un bouton Cliquez) comme ceci textFieldController.text
qui détient la valeur actuelle d'un champ de texte