簡體   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