我正在尝试从firestore中检索文档并将其存储到列表中,但是我正在返回[Instance of 'QueryDocumentSnapshot', Instance of 'QueryDocumentSnapshot']
。此外,它不返回文档列表,但字段的长度仅为2但我在“组织”集合中有6个文档。我曾在SO上问过类似的问题,但没有得到答案。
这是我用来获取文档列表的代码:
Future<List> getHistory() async {
List history;
final List<DocumentSnapshot> documents =
(await FirebaseFirestore.instance.collection("Org").get()).docs;
history = documents.map((documentSnapshot) => documentSnapshot).toList();
return history;
}
@override
initState() {
emailInputController = new TextEditingController();
pwdInputController = new TextEditingController();
setlist();
super.initState();
Firebase.initializeApp();
}
void setlist()async {
List list = await getHistory();
print(list)
}
答案 0 :(得分:2)
您似乎忘记了在一行中做某事
ingredients
在这里调用const searchFilterFunction = (searchTerm) => {
if (searchTerm) {
setSearchDetails(searchTerm);
const newData = foods.filter(({ name, ingredients }) => {
if (RegExp(searchTerm, "gim").exec(name))
return RegExp(searchTerm, "gim").exec(name);
else
return ingredients.filter(({ val }) =>
RegExp(searchTerm, "gim").exec(val)
).length;
});
setData(newData);
} else {
setData([]);
}
};
不会执行任何操作,因为您没有进行任何映射。您可能打算致电
history = documents.map((documentSnapshot) => documentSnapshot).toList();
从每个快照中检索数据并将其映射到新列表。
如果要使用文档ID代替字段,请执行map
而不是检索数据:
history = documents.map((documentSnapshot) => documentSnapshot.data()).toList();