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