![](/img/trans.png)
[英]How to retrieve a List<Map<String, dynamic>> from Firestore?
[英]How do i retrieve a List<Map<String,Object>> from cloud firestore and convert it into a custom model?
我想檢索我使用此完成的數據,其中 studentReference 是對學生集合的 CollectionReference。
現在我想將 map 這個數據轉換成一個自定義主題 class 看起來像這樣
class Subjects {
int totalAttended;
int attended;
int missed;
final String subjectName;
final String subjectId;
final String subjectTeacher;
Subjects(
{this.attended,
this.missed,
this.totalAttended = 0,
this.subjectId,
this.subjectName,
this.subjectTeacher});
}
但無法弄清楚如何進行此映射。 我知道我需要使用 stream 但不知道如何。
任何幫助將不勝感激。
今后在共享代碼時盡量不要使用屏幕截圖。 Firebase 集合是一回事,但是您的retreiveData
和 print 語句很容易被嵌入代碼中。 如果有人想提供幫助並需要將您的代碼粘貼到他們的 IDE 中,他們肯定不想手動輸入。
無論如何,這應該讓你大部分時間到達那里。 它至少應該給你這個想法。 通過查看您的收藏, Subjects
是一個包含 2 張地圖的列表。 所以這里有一個 function 遍歷列表,從映射中提取鍵/值對,從值中創建一個Subjects
object,將Subjects
對象添加到列表中,然后返回列表。
List<Subjects> getSubjects(List subjectList) {
final List<Subjects> list = [];
for (int i = 0; i < subjectList.length; i++) {
final map = subjectList[i];
final totalAttended = map['totalAttended'];
final attended = map['attended'];
final missed = map['missed'];
final subjectName = map['subjectName'];
final subjectId = map['subjectId'];
final subjectTeacher = map['subjectTeacher'];
final subject = Subjects(
totalAttended: totalAttended,
attended: attended,
missed: missed,
subjectName: subjectName,
subjectTeacher: subjectTeacher,
subjectId: subjectId);
list.add(subject);
}
return list;
}
您可以在retreiveData
function 之外聲明一個subjectList
,然后在您當前有打印語句的地方,您可以這樣做
subjectList = getSubjects(value.data()['subjects']);
然后你有一個Subjects
對象列表,你可以根據需要使用它們。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.