繁体   English   中英

无法从 firestore flutter 检索数据

[英]cannot retrieve data from firestore flutter

String branch, semester;



Future<void> _getUserDetails() async {
String uid = FirebaseAuth.instance.currentUser.uid;
await FirebaseFirestore.instance.collection('UserDatabase').doc(uid).get().then((user) {
  setState(() {
    branch = user.data()['Branch'];
    semester = user.data()['Semester'];
  });
});

print(branch);
print(semester);

}

这是我的数据库firestore 快照的快照

我正在尝试从 firestore 检索数据,但出现此错误

未处理的异常:NoSuchMethodError:在 null 上调用了方法“[]”。

有人可以帮我解决这个错误。

确保 uid 在 firestore 中作为文档可用

或者你可以试试下面的代码

  Future<void> _getUserDetails() async {
    String uid = FirebaseAuth.instance.currentUser.uid;
    DocumentSnapshot doc = await FirebaseFirestore.instance.collection('UserDatabase').doc(uid).get();

    if(doc.exists) { // this will check availability of document
      branch = doc.data()['Branch'];
      semester = doc.data()['Semester'];
    }else{
      branch = "User is not available";
      semester = "User is not available";
    }
    setState((){});
  }

登记:

_firestore.collection('UserDatabase').doc(FirebaseAuth.instance.currentUser.uid).set({
 'Branch': branchVal,
'Email': loggedInUser.email,
'RollNo': rollNoVal,
'Semester': semesterVal,
'Year': yearVal,
});

试试这个

await FirebaseFirestore.instance.collection('UserDatabase').doc(uid).get().then((user) {
user.docs.forEach((result) {
  branch = result.data()['Branch'];
semester = result.data()['Semester'];
});

});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM