簡體   English   中英

Flutter中如何通過方法獲取Firestore數據

[英]How to get Firestore Data by method in Flutter

我正在嘗試獲取用戶名,但 Flutter 出現此錯誤:

The body might complete normally, causing 'null' to be returned, but the return type is a potentially non-nullable type.
Try adding either a return or a throw statement at the end.

方法:

  String getUserNameFromUID(String uid) {

    FirebaseFirestore.instance
        .collection('users')
        .where('uid', isEqualTo: uid)
        .get()
        .then((QuerySnapshot querySnapshot) {
      querySnapshot.docs.forEach((doc) {
        return doc["name"];
      });

    });

  }

我該如何解決我的問題? 如果我將 return 0 添加到方法的末尾,它總是給出 0。

它總是給 0。(我不想要 0,我想從 uid 獲取用戶名)

  String getUserNameFromUID(String uid) {

    FirebaseFirestore.instance
        .collection('users')
        .where('uid', isEqualTo: uid)
        .get()
        .then((QuerySnapshot querySnapshot) {
      querySnapshot.docs.forEach((doc) {
        return doc["name"];
      });

    });

return "0";

  }

首先你的函數應該返回一個Future<String>因為它依賴於 firestore 的get也返回一個未來。 另外docs是一個列表,你只需要返回一個。 第一個我猜。 在 UI 中只需使用FutureBuilder

 Future<String> getUserNameFromUID(String uid) async {

    final snapshot = await FirebaseFirestore.instance
        .collection('users')
        .where('uid', isEqualTo: uid)
        .get();
     return snapshot.docs.first['name'];

  }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM