Я только что попытался проанализировать данные из базы данных Firebase в реальном времени. но есть проблемы при преобразовании в модель Я пытаюсь проанализировать данные из базы данных Firebase на Flutter. Но сообщается об ошибке
Мой полный тест: {-M5-R3BqTajbCFk5mQuQ: {coins: 434, isSubmit: true, вопросы: [{answer: sddsd, name: зачем мы его используем ?, параметры : [установлено, adwada, adawda, sddsd], выберите:}, {ответ: adawda, имя: где мне их взять ?, параметры: [установлено, adwada, adawda, sddsd], выберите: sddsd}, {ответ: adwada , имя: Lorem Ipsum - просто фиктивный текст печати ?, параметры: [установлено, adwada, adawda, sddsd], выберите: установлено}], quizId: YItWgbYjHm}, -M50HhYPnuR7tS C -9ajw: {isSubmit: true, вопросы: [{answer: dadada, name: откуда это происходит? 6768): тип '(Dynami c, Dynami c) => Null' не является подтипом типа '(Dynami c) => Dynami c' из 'F'
Здесь структура базы данных
Следующая функция для fetchMyQuiz()
Future<Quiz> fetchMyQuiz(String uid) async {
Quiz _quiz;
var dio = Dio();
dio.options
..baseUrl = Constant.baseUrl
..connectTimeout = 5000 //5s
..receiveTimeout = 5000
..validateStatus = (int status) {
return status > 0;
}
..headers = {
HttpHeaders.userAgentHeader: 'dio',
'common-header': 'xx',
};
_isLoadingUser = true;
notifyListeners();
List<Quiz> _fetchedQuiz = [];
try {
var response = await dio.get(
Constant.userParam + '/$uid' + Constant.quiz + Constant.jsonExt,
options: Options(
contentType: Headers.formUrlEncodedContentType,
),
);
print("MY Complete QUIZ: ${response.data}");
if (response.statusCode == 200) {
var responseData = response.data;
responseData.forEach((String id, dynamic json) {
if (responseData != null) {
_quiz = Quiz.fromJson(id, json);
_fetchedQuiz.add(_quiz);
}
});
} else {
print("FETCH QUIZ error: ${response.data}");
}
} catch (e) {
print(e);
}
_myQuizList = _fetchedQuiz;
_isLoadingUser = false;
notifyListeners();
return _quiz;
}
class Quiz {
String id;
String quizId;
int coins;
bool isSubmit;
List<Questions> questions;
Quiz({this.id, this.quizId, this.coins, this.isSubmit, this.questions});
Quiz.fromJson(String idQuiz, Map<String, dynamic> json) {
id = idQuiz;
quizId = json['quizId'];
coins = json['coins'];
isSubmit = json['isSubmit'] == null ? false : json['isSubmit'];
if (json['questions'] != null) {
questions = new List<Questions>();
json['questions'].forEach((idQuest, vQuest) {
questions.add(new Questions.fromJson(idQuest, vQuest));
});
}
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['id'] = this.id;
data['quizId'] = this.quizId;
data['coins'] = this.coins;
data['isSubmit'] = this.isSubmit;
if (this.questions != null) {
data['questions'] = this.questions.map((v) => v.toJson()).toList();
}
return data;
}
}
class Questions {
String id;
String name;
String select;
String answer;
// bool isSave;
List<String> options;
Questions(
{this.id,
this.name,
this.select,
this.answer,
// this.isSave,
this.options});
Questions.fromJson(String id, Map<String, dynamic> json) {
id = id;
name = json['name'];
select = json['select'] == null ? '' : json['select'];
answer = json['answer'];
// isSave = false;
if (json['options'] != null) {
options = json['options'].cast<String>();
}
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['id'] = this.id;
data['name'] = this.name;
data['select'] = this.select;
data['answer'] = this.answer;
// data['isSave'] = this.isSave;
data['options'] = this.options;
return data;
}
}
Любой ответ будет оценен. * 10 21 *