2 votes

Comment enregistrer un champ comme étant 'null' sur Firebase s'il n'y a aucune valeur saisie dans TextFormField

'?? null' fonctionne si seul le premier champ le contient, cependant cela ne sera pas enregistré si l'autre(s) champ(s) contient également '?? null'. Y a-t-il une meilleure façon d'écrire ceci?

onPressed: () async {
              final uid =
                  await TheProvider.of(context).auth.getCurrentUID();
              //enregistrer les données sur firebase
              widget.contact.name = oneController.text;
              widget.contact.phoneNumber = int.parse(twoController.text);
              widget.contact.location = threeController.text;
              widget.contact.rating = int.parse(fourController.text);
              widget.contact.instagram = fiveController.text;
              widget.contact.birthday = int.parse(sixController.text);
              widget.contact.notes = sevenController.text;
await db
                  .collection("userData")
                  .doc(uid)
                  .collection("Contacts")
                  .add(widget.contact.toJson());

La Map dans le fichier models

Map toJson() => {
    'Name': name,
    'PhoneNumber': phoneNumber,
    'Location': location,
    'Rating': rating,
    'Instagram': instagram,
    'Birthday': birthday,
    'Notes': notes,
  };
}

0voto

ashf Points 169

Les entiers sont ce qui empêche la sauvegarde. Au lieu d'utiliser int.parse, utilisez int.tryParse.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X