база данных flutter firestore добавить тип MAP - PullRequest
0 голосов
/ 11 января 2020

У меня проблема с сохранением данных в базе данных firestore с помощью flutter. У меня есть два класса:

class Level {
  final String name;
  final List<Materia> materie;
  Level({
    this.name,
    this.materie,
  });
  Map toJson() {
     return {"name": name, "materie": materie};
  }
}
class Materia extends Taggable {
  final String name;
  Materia({
    this.name,
  });
  @override
  List<Object> get props => [name];
}

Я хочу сохранить это в MAP в firestore, но получаю эту ошибку:

Unhandled Exception: Invalid argument: Instance of 'Level'

Это код, который я использую для сохранения своих данных:

Future<bool> saveProfile({String uid, String name, String surname, String address, List<Level> level}) async {
    try {
      Firestore.instance.collection('users').document(uid).updateData({ 'name': name, 'surname': surname, 'address': address, 'level': level.toJson() });
      return true;
    }  catch (e) {
      // throw the Firebase AuthException that we caught
      throw new Exception(e.toString());
    }
  }

спасибо !!

1 Ответ

0 голосов
/ 11 января 2020

Вам необходимо создать функцию отображения в классе Level, например:

Map toJson(){
  return {
    "name" : name,
    "materie" : materie
  };
}

Затем обновите код обновления Firebase следующим образом: Firestore.instance.collection('users').document(uid).updateData({ 'name': name, 'surname': surname, 'address': address, 'level': level.toJson() });

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...