對于我的 flutter 應用程式,我將一個集合作為查詢快照獲取并使用以下方法將其轉換為串列:
var dataList = snapShot.docs.map((e) => e.data()).toList();
像魅力一樣作業,直到現在都沒有問題。
最近,我一直在嘗試操作集合中的資料,為此,我需要 docId。但出于某種原因,該串列沒有包含 docId。
應該有一種在將快照轉換為串列時包含檔案 ID 的快速方法。
有人可以幫忙嗎?謝謝。
uj5u.com熱心網友回復:
您可以添加e.id到您的地圖。
var dataList = snapShot.docs.map((e) {
Map value = e.data();
value['docId'] = e.id;
return value;
}).toList();
或者您可以通過docId以下方式創建模型類并添加到模型類中。
您可以使用這種方式回傳物件串列
return ref.snapshots().map((list) => list.docs.map((doc) =>
Model.fromFirestore(doc)).toList());
你的模型類
class Model {
final String categoryId;
Model({this.categoryId});
factory Model.fromFirestore(DocumentSnapshot doc) {
Map data = doc.data();
return Model(
docId: doc.id,
categoryId: data['categoryId'],
// other fields
);
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/394275.html
標籤:火力基地 扑 谷歌云firestore
