无法从Firestore检索文档

时间:2020-08-30 14:18:31

标签: firebase flutter google-cloud-firestore

我正在尝试从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)
   }

我要将所有文档存储在“ Org”集合中的列表中。这是供参考的图片。 enter image description here

1 个答案:

答案 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();