通过firebase更改字符串变量

时间:2019-01-08 21:03:04

标签: firebase flutter setstate

如何在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消息的消息。

0 个答案:

没有答案