非同期でデータ取得後にウィジェットを表示する

参照先

Flutterで非同期でWidgetを生成する

非同期でデータを取得

1
2
3
Future<DocumentSnapshot> getUserInfo(String uid) {
return Firestore.instance.collection("user").document(uid).get();
}

非同期でデータを取得できたら、ウィジェットに表示する

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Widget _userImage(DocumentSnapshot data) {
return FutureBuilder(
// future属性で非同期処理を書く
future: chatHelper.getUserInfo(data.data["uid"]),
builder: (context, snapshot) {
// 取得完了するまで別のWidgetを表示する
if (!snapshot.hasData)
return CircleAvatar(
backgroundImage: AssetImage("assets/defaultImage.png"),
);

// 取得できたらそれにしたがってViewを表示する
return CircleAvatar(
backgroundImage: snapshot.data["profile_url"] == null
? AssetImage("assets/defaultImage.png")
: NetworkImage(snapshot.data["profile_url"]),
);
},
);
}

コメント

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×