Forms Flatter Form Builder和firestore
我正在使用颤振表单生成器和单选按钮 我当前的文本字段使用其控制器正常工作,然后写入firebase firestore。当我尝试将单选按钮变量指定给写入firebase时,它会写入是和否,即使它正在打印在模拟器或控制台中的电话中选择的答案 如何将其转换为上传正确答案的变量 文件顶部Forms Flatter Form Builder和firestore,forms,firebase,flutter,google-cloud-firestore,flutter-form-builder,Forms,Firebase,Flutter,Google Cloud Firestore,Flutter Form Builder,我正在使用颤振表单生成器和单选按钮 我当前的文本字段使用其控制器正常工作,然后写入firebase firestore。当我尝试将单选按钮变量指定给写入firebase时,它会写入是和否,即使它正在打印在模拟器或控制台中的电话中选择的答案 如何将其转换为上传正确答案的变量 文件顶部 class _FFPServicesApplicationWidgetState extends State<FFPServicesApplicationWidget> { var data; boo
class _FFPServicesApplicationWidgetState extends State<FFPServicesApplicationWidget> {
var data;
bool autoValidate = true;
bool readOnly = false;
bool showSegmentedControl = true;
final GlobalKey<FormBuilderState> _fbKey = GlobalKey<FormBuilderState>();
ValueChanged _onReferral =(val) => print(val);
var referralOptions = ['Yes', 'No',];
get _fbUserKey => null;
void onItemTwoPressed(BuildContext context) => Navigator.push(context,
MaterialPageRoute(builder: (context) => HelpWidget()));
TextEditingController taskNameInputController;
TextEditingController taskEmailInputController;
TextEditingController taskPhoneInputController;
TextEditingController taskDescriptionInputController;
TextEditingController taskAgencyInputController;
@override
initState() {
taskNameInputController = new TextEditingController();
taskEmailInputController = new TextEditingController();
taskPhoneInputController = new TextEditingController();
taskDescriptionInputController = new TextEditingController();
taskAgencyInputController = new TextEditingController();
super.initState();
}
“提交”按钮
Row(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
MaterialButton(
child: Text("Submit"),
onPressed: () {
if (_fbKey.currentState.saveAndValidate()) {
print(_fbKey.currentState.value);
Firestore.instance
.collection('email')
.add({
"1. Name": taskNameInputController.text,
"2. Email": taskEmailInputController.text,
"3. Phone Number": taskPhoneInputController.text,
"4. Description": taskDescriptionInputController.text,
"5. Were you Referred": referralOptions,
"6. Agency Referring?": taskAgencyInputController.text,
"7. Children under 18": childrenOptions,
"8. Lincoln County?": countyOptions,
"9. Received Support in the past?": supportOptions,
});
}
},
),
MaterialButton(
child: Text("Reset"),
onPressed: () {
_fbKey.currentState.reset();
},
),
],
),
行(
mainAxisAlignment:mainAxisAlignment.center,
儿童:[
材料按钮(
儿童:文本(“提交”),
已按下:(){
if(_fbKey.currentState.saveAndValidate()){
打印(_fbKey.currentState.value);
Firestore.instance
.collection(“电子邮件”)
.添加({
“1.Name”:taskNameInputController.text,
“2.电子邮件”:taskEmailInputController.text,
“3.电话号码”:taskPhoneInputController.text,
“4.说明”:taskDescriptionInputController.text,
“5.你是否被推荐”:推荐选项,
“6.代理引用?”:taskAgencyInputController.text,
“7.18岁以下儿童”:儿童翻新,
“8.林肯县?”:县选项,
“9.过去是否获得过支持?”:支持选项,
});
}
},
),
材料按钮(
子项:文本(“重置”),
已按下:(){
_fbKey.currentState.reset();
},
),
],
),
好的
我显然是个笨蛋
这是固定代码
我只需要声明要添加到当前文档中的键,而不是试图使每个键都成为自己的控制器和变量
Row(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
MaterialButton(
child: Text("Submit"),
onPressed: () {
if (_fbKey.currentState.saveAndValidate()) {
print(_fbKey.currentState.value);
Firestore.instance
.collection('email')
.add(_fbKey.currentState.value);
}
},
),
MaterialButton(
child: Text("Reset"),
onPressed: () {
_fbKey.currentState.reset();
},
),
],
),
行(
mainAxisAlignment:mainAxisAlignment.center,
儿童:[
材料按钮(
儿童:文本(“提交”),
已按下:(){
if(_fbKey.currentState.saveAndValidate()){
打印(_fbKey.currentState.value);
Firestore.instance
.collection(“电子邮件”)
.add(_fbKey.currentState.value);
}
},
),
材料按钮(
子项:文本(“重置”),
已按下:(){
_fbKey.currentState.reset();
},
),
],
),
Row(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
MaterialButton(
child: Text("Submit"),
onPressed: () {
if (_fbKey.currentState.saveAndValidate()) {
print(_fbKey.currentState.value);
Firestore.instance
.collection('email')
.add(_fbKey.currentState.value);
}
},
),
MaterialButton(
child: Text("Reset"),
onPressed: () {
_fbKey.currentState.reset();
},
),
],
),