[英]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.