#firebase #flutter #google-cloud-firestore
#firebase #флаттер #google-облако-firestore
Вопрос:
Когда я добавляю данные в поток в приложении, они будут добавлены, но с пустыми полями. Затем, если я добавлю данные снова, они покажут прошлую запись, и процесс повторится. Иными словами, записанные данные отображаются в последующем документе (после его создания).
onPressed: () async {
//save data to firebase
await db.collection("Contacts").add(
{
'Name': widget.contact.name,
'PhoneNumber': widget.contact.phoneNumber,
'Location': widget.contact.location,
'Birthday': widget.contact.birthday,
'Notes': widget.contact.notes
},
);
widget.contact.name = oneController.text;
widget.contact.phoneNumber = int.parse(twoController.text);
widget.contact.location = threeController.text;
widget.contact.birthday = int.parse(sixController.text);
widget.contact.notes = sevenController.text;
Navigator.pushReplacementNamed(context, "/second");
})
Комментарии:
1. Пожалуйста, поделитесь некоторым кодом, в котором у вас возникла проблема.
2. Хорошо, я добавил некоторые
Ответ №1:
Попробуйте изменить порядок.
onPressed: () async {
//save data to firebase
widget.contact.name = oneController.text;
widget.contact.phoneNumber = int.parse(twoController.text);
widget.contact.location = threeController.text;
widget.contact.birthday = int.parse(sixController.text);
widget.contact.notes = sevenController.text;
await db.collection("Contacts").add(
{
'Name': widget.contact.name,
'PhoneNumber': widget.contact.phoneNumber,
'Location': widget.contact.location,
'Birthday': widget.contact.birthday,
'Notes': widget.contact.notes
},
);
Navigator.pushReplacementNamed(context, "/second");
})
Ответ №2:
Вам необходимо установить значения вашего контроллера, прежде чем добавлять DB. Вот почему вы добавляете нулевое значение в первый раз. Попробуйте заменить приоритет ваших кодов следующим образом:
widget.contact.name = oneController.text;
widget.contact.phoneNumber = int.parse(twoController.text);
widget.contact.location = threeController.text;
widget.contact.birthday = int.parse(sixController.text);
widget.contact.notes = sevenController.text;
await db.collection("Contacts").add(
{
'Name': widget.contact.name,
'PhoneNumber': widget.contact.phoneNumber,
'Location': widget.contact.location,
'Birthday': widget.contact.birthday,
'Notes': widget.contact.notes
},
);