Я хочу получить свой ИД пользователя до запуска сборки в моем виджете с состоянием.
Если я сделаю это, то build будет отображаться до того, как я получу свой идентификатор. Если я помещу его в setstate, моя сборка будет сначала использовать пустую строку, а затем перерисовывать ее снова с моим идентификатором, но это вызовет ненужное поведение.
Так как мне решить эту проблему?
String _userid = '';
Future<Null> setUserid() async {
SharedPreferences pref = await SharedPreferences.getInstance();
_userid = pref.getString('FB_USER');
}
initState() {
super.initState();
setUserid();
}
Строить
// Widget build
new Flexible(
child: new StreamBuilder<QuerySnapshot>(
stream: Firestore.instance
.collection('users')
.document(_userid)
.collection('rooms')
.snapshots(),
builder:
(BuildContext context, AsyncSnapshot<QuerySnapshot> snapshot) {
if (!snapshot.hasData) return new Text('Loading...');
return new ListView(
children: snapshot.data.documents
.map(
(DocumentSnapshot document) => new Text('lol'),
// )
//new OverviewPresentation(presentation: document),
)
.toList(),
);
},
),
),