Firebase NoSuchMethodError:方法';[]和#x27;在null上调用了。接收者:空。已尝试呼叫:[](“名称”)

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

我正在尝试从Flatter中的firestore检索单个文档,当文档存在时,它应返回数据;当文档不存在时,它应返回空数据,这是我迄今为止尝试的:

  @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(),