如何在Firebase中获取字符串的document.documentID
?
当我打印document.documentID
时,它工作正常,我认为我需要Future
之类的东西,但是可以使用一些帮助将我的String字段subUserID
更改为document.documentID
?
onPressed: () async {
print(document.documentID);
setState(() {
subUserID = document.documentID;
});
_toggleBackdropPanelVisibility();
},
Actual result =显示documentID
,但不更改String的状态。
有关代码的更多信息:
这是我的小部件,用于获取我在Cloud Firebase存储上拥有的用户列表,该列表运行良好;
@override
Widget build(BuildContext context) {
return Container(
child: StreamBuilder(
stream: Firestore.instance.collection('users').snapshots(),
builder: (context, snapshot) {
if (!snapshot.hasData) {
return Center(
child: CircularProgressIndicator(),
);
} else {
return ListView.builder(
physics: BouncingScrollPhysics(
parent: AlwaysScrollableScrollPhysics()),
padding: EdgeInsets.symmetric(
vertical: MediaQuery.of(context).padding.top + kToolbarHeight),
itemBuilder: (context, index) =>
buildUsers(context, snapshot.data.documents[index]),
itemCount: snapshot.data.documents.length,
);
}
},
),
);
}
在buildUsers函数中,我具有以下内容:
Widget buildUsers(BuildContext context, DocumentSnapshot document) {
return FlatButton(
child: ///
onPressed: widget.onPressed
///
}
我将widget.onPressed传递到顶部构建函数,在该函数中,我想将subUserID的字符串更改为我所点击的内容,这将显示每个当前用户和subUserID的消息列表。
onPressed的当前实现位于屏幕顶部。
如果我要导航到新屏幕,则可以使该字符串起作用,但是当我不导航至新屏幕时,则不能使该字符串起作用。因为我想要背景实现,因此导航器不能真的有帮助。
对于我的buildMessages小部件,其想法是显示来自user-subUserID消息的消息。