# #firebase #flutter
Вопрос:
Я переношу код flutter firebase, который я написал в sdk 2.7, в версию с нулевой безопасностью, и возникла проблема. Существует проблема с snapshot.data() среди кодов моделей пользователей firebase.
UserModel.fromMap(Maplt;String, dynamicgt; map, this.userKey, {this.reference}) : profileImg = map[KEY_PROFILEIMG], username = map[KEY_USERNAME], email = map[KEY_EMAIL], likedPosts = map[KEY_LIKEDPOSTS], followers = map[KEY_FOLLOWERS], followings = map[KEY_FOLLOWINGS], myPosts = map[KEY_MYPOSTS]; UserModel.fromSnapShot(DocumentSnapshot snapshot) : this.fromMap(snapshot.data(), snapshot.id, //snapshot.data() error reference: snapshot.reference);
введите описание изображения здесь
ошибка моментального снимка.данные()
The argument type 'Object?' can't be assigned to the parameter type 'Maplt;String, dynamicgt;'.
Могу я узнать об этой проблеме? Спасибо.
Ответ №1:
Я предлагаю вам сначала глубже взглянуть на null-safty, сначала это сбивает с толку, но скоро вы легко поймете это.
Однако, короче говоря, нуль-магазина означает, что переменные не могут быть null, если вы не указали, что с ‘?’ после типа.
В коде, который вы указали в качестве первого аргумента fromMap
, который является карте, что оно не может быть null, потому что вы не добавить ‘?’, и snapshot.data()
может возвращать значение null.
Чтобы исправить это, вы либо:
- Сделать карту недействительной с помощью ? быть похожим -gt; gt;
Maplt;String, dynamicgt;? map
что нехорошо, потому что это функция fromMap. - Проверьте значение
snapshot.data()
, если оно равно нулю:- Не звони
fromMap
. - Или передайте альтернативное значение, например пустой объект
{}
- Не звони