【问题标题】:return array and convert it to list flutter firebase返回数组并将其转换为列表颤振火力
【发布时间】:2021-12-23 02:51:18
【问题描述】:
Future<bool> checkLiked(String questionID) async {
    DocumentReference ref = questionBank.doc(questionID);
    List<dynamic>? list;
    await ref.get().then((value) {
      list = value['userLiked'];
    });
    print(list!.contains(uid));
    return list!.contains(uid);
  }

它 alawys 也返回 false 也已经在列表中的 uid,当我打印列表时它是空的,但是在 then 方法中它包含 uid 如何在 then 方法之外返回列表

【问题讨论】:

    标签: firebase flutter google-cloud-firestore


    【解决方案1】:

    也许您在外面打印列表,但在里面打印值....
    但是它们都不会返回正确的值,因为您必须使用 .data()从结果中获取数据:

    一种方式

    Future<bool> checkLiked(String questionID) async {
     DocumentReference ref = questionBank.doc(questionID);
    
     List<dynamic>? list= (await ref.get()).data()?['userLiked'];
    
     return list;
    }
    

    另一种方式

    Future<bool> checkLiked(String questionID) async {
     DocumentReference ref = questionBank.doc(questionID);
     List<dynamic>? list;
     await ref.get().then((value) {
      list = value.data()['userLiked'];
     });
    
     return list;  
    }
    

    还有

    Future<bool> checkLiked(String questionID) async {
     DocumentReference ref = questionBank.doc(questionID);
     List<dynamic>? list;
     list = await ref.get().then((value) {
      return value.data()['userLiked'];
     });
    
     return list;  
    }
    

    您可以将数组分配给List&lt;dynamic&gt;,而无需强制转换。

    【讨论】:

      【解决方案2】:

      async/awaitthen 结合使用会引发问题。您应该使用async/await then,而不是同时使用。

      Future<bool> checkLiked(String questionID) async {
        DocumentReference ref = questionBank.doc(questionID);
        DocumentSnapshot value = await ref.get();
        List<dynamic>? list = value['userLiked'];
        print(list!.contains(uid));
        return list!.contains(uid);
      }
      

      【讨论】:

        猜你喜欢
        • 2020-07-28
        • 2023-03-22
        • 1970-01-01
        • 2021-06-05
        • 2019-05-31
        • 2021-03-10
        • 1970-01-01
        • 1970-01-01
        • 2021-07-03
        相关资源
        最近更新 更多