gpt4 book ai didi

firebase - NoSuchMethodError:方法 '[]'在null上被调用。接收者:null。尝试调用:[] (“name”)

转载 作者:行者123 更新时间:2023-12-03 04:40:49 31 4
gpt4 key购买 nike

我正在尝试从firestore中的flutter中检索单个文档,当存在文档时,它应该返回数据,而当不存在文档时,它应该返回null数据,到目前为止,我尝试过什么:

  @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"],
);
}
},
);
}
但我收到此错误
enter image description here

最佳答案

snapshot.data为null,因此会出现该错误,很可能user.uid为null,这就是为什么您未获取任何数据的原因,您必须执行以下操作:

Stream<DocumentSnapshot> getData() async*{
var user = await FirebaseAuth.instance.currentUser();
yield* Firestore.instance.collection('Profile').document(user.uid).snapshots()
}
然后在 StreamBuilder内部使用 getData()方法:
   return StreamBuilder(
stream: getData(),

关于firebase - NoSuchMethodError:方法 '[]'在null上被调用。接收者:null。尝试调用:[] (“name”),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63249319/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com