Flutter:如何返回数据?

时间:2020-10-31 13:59:12

标签: flutter dart

这是我的代码。我想返回我的数据memo_listmemo_list在代码here中具有价值。

但是memo_list返回空值。

我不知道为什么删除了数据。

  List fetchMemosFromAllUsers(List<dynamic> users){
    List memo_list = List();

    for(final user in users){
      FirebaseFirestore.instance.collection("MEMO").where(KEY_USERKEY, isEqualTo: user).get().then((docs) {
        if(docs.docs.isNotEmpty){
          for(int i = 0; i < docs.docs.length; i++){
            memo_list.add(docs.docs[i].data());         <-------here
          }
        }
      });
    }
    return memo_list;
  }

1 个答案:

答案 0 :(得分:2)

您不是在等待未来的来临。 memo.list在执行.then()之前返回,因此memo_list始终为空。

尝试

  Future<List> fetchMemosFromAllUsers(List<dynamic> users) async {
    List memo_list = List();

    for(final user in users){
      await FirebaseFirestore.instance.collection("MEMO").where(KEY_USERKEY, isEqualTo: user).get().then((docs) {
        if(docs.docs.isNotEmpty){
          for(int i = 0; i < docs.docs.length; i++){
            memo_list.add(docs.docs[i].data());         <-------here
          }
        }
      });
    }
    return memo_list;
  }