есть ли способ помочь мне исправить тип null не является подтипом типа Map<string, dynamic>?

Я работаю над флаттером уже несколько месяцев, и 9X_singlechildscrollview мне нужно понять, как исправить проблемы 9X_dart с нулевой безопасностью, но это действительно 9X_flutter-listview сложно для меня, и я хотел бы получить помощь.

Вот 9X_singlechildscrollview моя проблема:

Всякий раз, когда я пытаюсь 9X_flutter-listview войти в систему, я получаю эту ошибку: тип 9X_flutter-listview «Null» не является подтипом типа Map Я 9X_dart изо всех сил пытался понять, что идет не 9X_flutter-appbar так, но я не могу, любая помощь спасет жизнь...

import 'package:cloud_firestore/cloud_firestore.dart'; class User { final String email; final String uid; final String photoUrl; final String username; final String bio; final List followers; final List following; const User({ required this.email, required this.uid, required this.photoUrl, required this.username, required this.bio, required this.followers, required this.following, }); 

тогда 9X_dart я продолжил здесь

Map toJson() => { "username": username, "uid": uid, "email": email, "photoUrl": photoUrl, "bio": bio, "followers": followers, "following": following, }; static User fromSnap(DocumentSnapshot snap) { var snapshot = snap.data() as Map; return User( username: snapshot['username'], uid: snapshot['uid'], email: snapshot['email'], photoUrl: snapshot['photoUrl'], bio: snapshot['bio'], followers: snapshot['followers'], following: snapshot['following'], ); } } 

теперь я получаю сообщение 9X_dart об ошибке в этой строке: нулевой тип не 9X_dart является подтипом Map

var snapshot = snap.data() as Map; 

это 9X_dart все моя проблема, заранее спасибо.

4
0
1
Общее количество ответов: 1

Ответ #1

Ответ на вопрос: есть ли способ помочь мне исправить тип null не является подтипом типа Map<string, dynamic>?

Ваше значение snapshot равно nullable, и вы пытаетесь преобразовать 9X_flutter его в map вместо этого:

var snapshot = snap.data() as Map; 

попробуйте это:

var snapshot = snap.data() != null ? snap.data() as Map : {}; 

Также 9X_flutter-layout измените свой возврат на это:

return User( username: snapshot['username']??””, uid: snapshot['uid'] ??””, email: snapshot['email'] ??””, photoUrl: snapshot['photoUrl'] ??””, bio: snapshot['bio'] ??””, followers: snapshot['followers'] ??[], following: snapshot['following'] ??[], ); 

11
0