#firebase #flutter #google-cloud-firestore
#firebase #flutter #google-облако-firestore
Вопрос:
Пытаюсь загрузить данные формы в облачное хранилище Firestore. Я пробовал разные комбинации карт и хэш-карт, но не могу заставить это работать. Та же программа способна беспрепятственно считывать данные из хранилища, но не может записывать. Была бы весьма признательна за помощь.
Вот код:
MaterialButton(child: Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Icon(Icons.add_circle),
Text('Add item'),
]),
onPressed: () => {
setState(() {
if (_formKey.currentState.validate()) {
_formKey.currentState.save();
HashMap<dynamic, dynamic> listItem =
new HashMap<dynamic, dynamic>();
listItem["Description"] = _itemName;
listItem["Due"] = _due;
listItem["ID"] = _id;
listItem["Priority"] = _prioritySwitch;
listItem["Progress"] = _progress;
listItem["Reminder"] = _reminderSwitch;
listItem["SliderSwitch"] = _sliderSwitch;
listItem["Start"] = _start;
Firestore.instance
.collection("Task Lists")
.add(listItem.);
}
;
}),
},
),
))
],
),
),
Комментарии:
1. Вы пробовали использовать Map<String,Dynamic> ListItem = new Map<String, dynamic>();
Ответ №1:
Просто измените тип вашей хэш-карты на Map:
MaterialButton(child: Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Icon(Icons.add_circle),
Text('Add item'),
]),
onPressed: () => {
setState(() {
if (_formKey.currentState.validate()) {
_formKey.currentState.save();
Map<String, dynamic> listItem =
new Map<String, dynamic>();
listItem["Description"] = _itemName;
listItem["Due"] = _due;
listItem["ID"] = _id;
listItem["Priority"] = _prioritySwitch;
listItem["Progress"] = _progress;
listItem["Reminder"] = _reminderSwitch;
listItem["SliderSwitch"] = _sliderSwitch;
listItem["Start"] = _start;
Firestore.instance
.collection("Task Lists")
.add(listItem.);
}
;
}),
},
),
))
],
),
),
Ответ №2:
Попробуйте вместо этого использовать формат JSON, и вы сохраните явное создание Map:
Firestore.instance.collection("Task Lists").add(<String, dynamic>
{
"Description" : _itemName,
"Due" : _due,
"ID" : _id,
"Priority" : _prioritySwitch,
"Progress" : _progress,
"Reminder" : _reminderSwitch,
"SliderSwitch" : _sliderSwitch,
"Start" : _start,
});