簡體   English   中英

如何將來自 Firestore 的用戶名添加到 flutter 的應用欄中?

[英]How can i add username from firestore into my appbar in flutter?

所以我一直在嘗試在 flutter 中制作一個應用程序,但我似乎無法成功地將用戶名從 firestore 數據庫中獲取到變量中這是我的代碼! 編輯:

final FirebaseAuth _auth = FirebaseAuth.instance;

Future<String> inputData() async {
  String _username = '';
  final userCol = Firestore.instance.collection("users");
  final FirebaseUser user = await _auth.currentUser();
  final uid = user.uid;

  // here you write the codes to input the data into firestorenull
  final data = await userCol.document(uid).get().then(
    (value) {
      final username = value.data["username"];
      _username = username;
      
    },
  );
  return _username;
}

我已經以許多不同的方式嘗試了它,如異步、未來、FutureBuilder 等,但我似乎找不到解決方案。 這是應用欄:

   Widget build(BuildContext context) {
    var size = MediaQuery.of(context).size;
    return Stack(
      children: <Widget>[
        Scaffold(
          appBar: appbar.ProfileAppBar(name: _username)
............................................................

我認為我們需要更多信息(例如您是否成功檢索用戶名並且設置正確),但看起來您在獲取用戶名后沒有設置屏幕的 state。

你能試一下嗎

setState(() {
  final username = docs.data["username"];
  this._username = username;
});

您的 function 似乎也不正確。 您將用戶名定義為空字符串,然后定義異步 function 以獲取用戶名,並立即返回用戶名(空字符串)。 您將需要使用 class 變量並在 setstate 內部,將 class 變量設置為您從異步 '.then()' function 獲得的變量

所以我實際上做的是創建一個 FutureBuilder,它有很大幫助,我推薦給大家!!!

暫無
暫無

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

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