Firebase NoSuchMethodError:方法';[]和#x27;在null上调用了。接收者:空。已尝试呼叫:[](“名称”)
我正在尝试从Flatter中的firestore检索单个文档,当文档存在时,它应返回数据;当文档不存在时,它应返回空数据,这是我迄今为止尝试的:Firebase NoSuchMethodError:方法';[]和#x27;在null上调用了。接收者:空。已尝试呼叫:[](“名称”),firebase,flutter,dart,google-cloud-firestore,Firebase,Flutter,Dart,Google Cloud Firestore,我正在尝试从Flatter中的firestore检索单个文档,当文档存在时,它应返回数据;当文档不存在时,它应返回空数据,这是我迄今为止尝试的: @override Widget build(BuildContext context) { return StreamBuilder( stream: Firestore.instance.collection('Profile').document(user.uid).snapshots(), buil
@override
Widget build(BuildContext context) {
return StreamBuilder(
stream: Firestore.instance.collection('Profile').document(user.uid).snapshots(),
builder: (context, snapshot) {
if (!snapshot.hasData) {
return new showProfile(
name: "null",
email: "null",
pin: "null",
state: "null",
);
}else {
var userDocument = snapshot.data;
return new showProfile(
name: userDocument["name"],
email: userDocument["email"],
pin: userDocument["pin"],
state: userDocument["state"],
);
}
},
);
}
但我得到了这个错误
snapshot.data
为空,因此您会得到该错误,最有可能是用户.uid
为空。这就是您没有得到任何数据的原因,您必须执行以下操作:
Stream<DocumentSnapshot> getData() async*{
var user = await FirebaseAuth.instance.currentUser();
yield* Firestore.instance.collection('Profile').document(user.uid).snapshots()
}
不应该是
Firestore.collection
而应该是Firestore.instance.collection
?@captility不应该是。
return StreamBuilder(
stream: getData(),