【问题标题】:Flutter FireStore empty listFlutter FireStore 空列表
【发布时间】:2020-10-30 10:42:52
【问题描述】:

我正在尝试读取集合中每个文档的 ID。如我所见, doc.id 是一个字符串,它具有每个文档的值名称。所以我只是尝试将该值添加到列表中,以便稍后将其传递给 DropDownButton。但由于某种原因,列表返回 null。

  List<String> readthishit() {
    List<String> ex;
    FirebaseFirestore.instance
        .collection('Enrollment')
        .get()
        .then((QuerySnapshot querySnapshot) => {
              querySnapshot.docs.forEach((doc) {
                ex.add(doc.id);
              })
            });
    return ex;
  }

发生了什么事?

【问题讨论】:

    标签: list flutter dart


    【解决方案1】:

    您需要使用await 关键字并等待来自Firebase 的结果。

    目前,您正在向Firebase 发送调用,但在Firebase 的结果之前,您的代码正在返回null 列表ex。

        Future<List<String>> readThisShit() async {
          List<String> ex = <String>[];
          final querySnapshot = await FirebaseFirestore.instance
              .collection('Enrollment')
              .get();
    
    
          querySnapshot.docs.forEach((doc) {
              ex.add(doc.id);
          });
    
          return ex;
      }
    

    另外,我认为您应该使用lowerCamelCase 表示法作为您的方法名称。所以,readthisshit 将变为 readThisShit。

    【讨论】:

    • 我也在函数中尝试了async 关键字,但我从未想过我需要FirebaseFirestore.instance 中的await 关键字。现在它完美地工作了。谢谢! (我需要等待 4 分钟才能接受你的回答,我会尽快接受。)
    • 谢谢,伙计。乐于助人。
    猜你喜欢
    • 2021-08-12
    • 2020-06-16
    • 2021-02-20
    • 1970-01-01
    • 2020-12-10
    • 2019-08-20
    • 1970-01-01
    • 2019-06-14
    • 1970-01-01
    相关资源
    最近更新 更多