есть ли способ помочь мне исправить тип 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 все моя проблема, заранее спасибо.
Ответ #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'] ??[], );
-
12
-
11
-
7
-
7
-
13
-
2
-
3
-
3
-
5
-
1
-
4
-
1
-
2
-
3
-
2
-
4
-
2
-
2
-
1
-
4
-
2
-
3
-
2
-
2
-
3
-
3
-
2
-
2
-
3
-
2
-
6
-
3
-
2
-
1
-
7
-
5
-
8
-
13
-
26
-
11
-
2
-
4
-
17
-
6
-
4
-
3
-
7
-
5
-
5
-
2