带有Flatter中Firebase数据的复选框

带有Flatter中Firebase数据的复选框,firebase,flutter,google-cloud-firestore,Firebase,Flutter,Google Cloud Firestore,我创建了一个从Firebase返回数据的方法,并创建了一个包含名称的清单。 问题是,当我选中一个复选框时,它会选择全部。 我所做的是从返回名称的同一个文档中提取Firebase,一个“isSelected”作为bool。 然后他从文档中提取值,当他选中复选框时,他输入所选用户的文档并在Firebase中更新值。 如何解决这个问题而不必在Firebase中使用复选框bool 另外,当您添加“post”时,我希望您获取所选用户的UID,并在文档中创建一个数组。如何获取所选用户的UID Widge

我创建了一个从Firebase返回数据的方法,并创建了一个包含名称的清单。 问题是,当我选中一个复选框时,它会选择全部。 我所做的是从返回名称的同一个文档中提取Firebase,一个“isSelected”作为bool。 然后他从文档中提取值,当他选中复选框时,他输入所选用户的文档并在Firebase中更新值。 如何解决这个问题而不必在Firebase中使用复选框bool

另外,当您添加“post”时,我希望您获取所选用户的UID,并在文档中创建一个数组。如何获取所选用户的UID

  Widget _usersCheckbox() {
return Column(
  crossAxisAlignment: CrossAxisAlignment.start,
  children: <Widget>[
    Text(
      'Send for',
      style: kLabelStyle,
    ),
    Container(
      alignment: Alignment.centerLeft,
      decoration: BoxDecoration(color: Colors.transparent),
      child: new StreamBuilder(
        stream: Firestore.instance
            .collection('users')
            .document(_idUser)
            .collection("friends")
            .snapshots(),
        builder:
            (BuildContext context, AsyncSnapshot<QuerySnapshot> snapshot) {
          if (!snapshot.hasData) return new Text('Loading...');
          return new ListView(
            shrinkWrap: true,
            children: snapshot.data.documents.map((document) {
              return new CheckboxListTile(
                title: Text(
                  document["name"],
                  style: TextStyle(color: Colors.white),
                ),
                value: _valueCheckbox,
                onChanged: (bool newValue) {
                  Map<String, dynamic> dadosUpdate = {
                    "isSelected": _valueCheckbox,
                  };
                  setState(() {
                    Firestore.instance
                        .collection('users')
                        .document(document["uid"])
                        .updateData(dadosUpdate);
                    _valueCheckbox = newValue;
                    print(newValue);
                  });
                },
              );
            }).toList(),
          );
        },
      ),
    )
  ],
);
Widget\u usersCheckbox(){
返回列(
crossAxisAlignment:crossAxisAlignment.start,
儿童:[
正文(
"叫",,
风格:克拉贝尔风格,
),
容器(
对齐:alignment.centerLeft,
装饰:盒子装饰(颜色:彩色。透明),
孩子:新的StreamBuilder(
流:Firestore.instance
.collection('用户')
.document(_idUser)
.收藏(“朋友”)
.snapshots(),
建设者:
(BuildContext上下文,异步快照){
如果(!snapshot.hasData)返回新文本('Loading…');
返回新的ListView(
收缩膜:对,
子项:snapshot.data.documents.map((文档){
返回新的CheckboxListTile(
标题:正文(
文件[“名称”],
样式:TextStyle(颜色:Colors.white),
),
值:_valueCheckbox,
一旦更改:(bool newValue){
地图数据更新={
“isSelected”:,
};
设置状态(){
Firestore.instance
.collection('用户')
.文件(文件[“uid”])
.更新数据(数据更新);
_valueCheckbox=newValue;
打印(新值);
});
},
);
}).toList(),
);
},
),
)
],
);
}