[英]Flutter: type 'Null' is not a subtype of type 'String' Error
我正在 Flutter 上制作 Instagram 克隆应用程序。 但是当我进入个人资料屏幕时,屏幕上出现红色屏幕背景和此文本(类型“Null”不是“String”类型错误的子类型)。 我该如何解决这个问题?
这是我的 global.variable.dart 文件
import 'package:firebase_auth/firebase_auth.dart';
import 'package:flutter/material.dart';
import 'package:bagisla2/screens/add_post_screen.dart';
import 'package:bagisla2/screens/feed_screen.dart';
import 'package:bagisla2/screens/profile_screen.dart';
import 'package:bagisla2/screens/search_screen.dart';
const webScreenSize = 600;
List<Widget> homeScreenItems = [
const FeedScreen(),
const SearchScreen(),
const AddPostScreen(),
const Text('notifications'),
ProfileScreen(
uid: FirebaseAuth.instance.currentUser!.uid,
),
];
您刚刚修复的 profile_screen.dart 中的错误
getData() async {
setState(() {
isLoading = true;
});
try {
var userSnap = await FirebaseFirestore.instance
.collection('users')
.doc(widget.uid)
.get();
// get post lENGTH
var postSnap = await FirebaseFirestore.instance
.collection('posts')
.where('uid', isEqualTo: FirebaseAuth.instance.currentUser!.uid)
.get();
postLen = postSnap.docs.length;
userData = userSnap.data()!;
followers = userSnap.data()!['followers'].length;
following = userSnap.data()!['following'].length;
isFollowing = userSnap
.data()!['followers']
.contains(FirebaseAuth.instance.currentUser!.uid);
setState(() {});
} catch (e) {
showSnackBar(
context,
e.toString(),
);
}
setState(() {
isLoading = false;
});}
至
getData() async {
try {
var userSnap = await FirebaseFirestore.instance
.collection('users')
.doc(widget.uid)
.get();
// get post lENGTH
var postSnap = await FirebaseFirestore.instance
.collection('posts')
.where('uid', isEqualTo: FirebaseAuth.instance.currentUser!.uid)
.get();
postLen = postSnap.docs.length;
userData = userSnap.data()!;
followers = userSnap.data()!['followers'].length;
following = userSnap.data()!['following'].length;
isFollowing = userSnap
.data()!['followers']
.contains(FirebaseAuth.instance.currentUser!.uid);
setState(() {
isLoading = true;
});
} catch (e) {
showSnackBar(
context,
e.toString(),
);
}}
之前做一个空检查:
List<Widget> homeScreenItems = [
const FeedScreen(),
const SearchScreen(),
const AddPostScreen(),
const Text('notifications'),
if (FirebaseAuth.instance.currentUser?.uid != null)
ProfileScreen(
uid: FirebaseAuth.instance.currentUser!.uid,
),
];
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.