Вопросы

Firebase DocumentSnapshot.data () возвращает объект? вместо Map ‹String, динамический›

В документации для DocumentSnapshot.data () говорится, что он возвращает Map<String, dynamic>
Тем не менее, IDE сообщает мне об ошибке и утверждает, что data () возвращает Object?

The argument type 'Object?' can't be assigned to the parameter type 'Map<String, dynamic>'.dart(argument_type_not_assignable)

Я пытаюсь сделать следующее

 factory NoteDto.fromJson(Map<String, dynamic> json) =>
      _$NoteDtoFromJson(json);

  factory NoteDto.fromFirestore(DocumentSnapshot doc) {
    return NoteDto.fromJson(doc.data()).copyWith(id: doc.id);
  }

Должен ли я как-то преобразовать Object? в Map<String, dynamic>?
Я изучил определение DocumentSnapshot.data() и увидел, что он использует шаблон T? data(), а сам класс — abstract class DocumentSnapshot<T extends Object?>. Теперь я понимаю, откуда взялось Object?.

Как убедиться, что я получу Map<String, dynamic> вместо Object? от DocumentSnapshot.data() ?

Если я изменю NoteDto.fromFirestore на

factory NoteDto.fromFirestore(DocumentSnapshot<Map<String, dynamic>> doc) {

Мне все еще нужно преобразовать Object? в Map ‹String, dynamic› в какой-то момент, но на этот раз это QueryDocumentSnapshot<Object?> doc в следующем вызове:

...
.map((doc) => NoteDto.fromFirestore(doc).toDomain())
...
Читать:
Подсчет вхождений символа в текстовый файл

Похожие записи

Скачать с именем файла по умолчанию для даты и времени пользовательского события в приложении Vaadin Flow

admin

Как добавить тестовые примеры в Microsoft Test Manager через программу

admin

Указатели на шаблонный класс

admin

Ошибка npm install bcrypt с ошибкой: не удается найти модуль ‘nan’

admin

Отдельные папки Bitbucket / git checkout при запуске конвейера

admin

Не удалось найти SDK SQLite.UWP.2015 при создании приложения UWP с использованием размещенного пула TFS

admin