如何在颤动中将数据从复选框存储到 Firebase

Posted

技术标签:

【中文标题】如何在颤动中将数据从复选框存储到 Firebase【英文标题】:How can i store data from check-box to Firebase in flutter 【发布时间】:2020-11-19 19:36:03 【问题描述】:

我想将复选框中的数据添加到 Flutter 中的 firebase 数据库,我该怎么做?请参阅下面的代码,如果是表单字段,我们使用控制器,但在复选框中我如何从中获取数据?,在代码中一切都很好,但我卡在了这一行

_databaseReference.child("resources").child("Yas").set(
    //what should i code here !!
);
import 'package:firebase_database/firebase_database.dart';
import 'package:flutter/material.dart';


class TestDart extends StatefulWidget 
  final String title;
  TestDart(this.title);
  @override
  _TestDartState createState() => _TestDartState();


class _TestDartState extends State<TestDart> 
  final _databaseReference = FirebaseDatabase.instance.reference();
  @override
  Widget build(BuildContext context) 
    return Scaffold(
      appBar: AppBar(
        title: Text("Testing"),
        centerTitle: true,
      ),
      body: SingleChildScrollView(
        child: Column(
          children: <Widget>[
            Exercise(
              title: "Yash",
            ),
            Exercise(
              title: "Deepak",
            ),
            Exercise(
              title: "Yashwant",
            ),
            SizedBox(
              height: 25,
            ),
            Container(
              child: Center(
                child: SizedBox(
                  height: 55,
                  width: 150,
                  child: RaisedButton(
                    onPressed: () 
                      _databaseReference.child("resources").child("Yas").set(
                        //what should i code here !!
                      );

                      Navigator.pushReplacement(
                          context,
                          PageTransition(
                              child: SubmitPage(),
                              type: PageTransitionType.rightToLeft));
                    ,
                    shape: RoundedRectangleBorder(
                        borderRadius: BorderRadius.circular(15)),
                    color: Colors.deepPurple,
                    child: Text("Submit",
                        style: TextStyle(
                          fontSize: 20,
                          color: Colors.white,
                        )),
                  ),
                ),
              ),
            )
          ],
        ),
      ),
    );
  


class Exercise extends StatefulWidget 
  final String title;

  Exercise(this.title);

  @override
  _ExerciseState createState() => _ExerciseState();


class _ExerciseState extends State<Exercise> 
  bool selected = false;

  @override
  Widget build(BuildContext context) 
    return ListTile(
      title: Text(widget.title),
      trailing: Checkbox(
          value: selected,
          onChanged: (bool val) 
            `setState`(() 
              selected = val;
            );
          ),
    );
  

【问题讨论】:

【参考方案1】:

您可以使用布尔值。 添加这个

bool flag = false;

RaisedButton(
       onPressed: () 
              setState()
                  !flag;
                  
      _databaseReference.child("resources").child("Yas").set(
                            'enabled': flag,
                      );

【讨论】:

这只会给出真或假值,但问题会存储值 你的意思是标签值吗? 是的,我想存储选定的值,例如 Deepak pr 可能是 Yash

以上是关于如何在颤动中将数据从复选框存储到 Firebase的主要内容,如果未能解决你的问题,请参考以下文章

如何在颤动中将数据从一个小部件传递到另一个小部件?

如何将图像从颤动的资产上传到firebase存储?

如何在颤动中将十六进制颜色代码解析为它们各自的整数值

如何从 Firebase 存储中下载图像并将其存储在颤动的列表中 [关闭]

如何在颤动中将图像复制到剪贴板

如何在颤动中将列表数据从一个屏幕传递到另一个屏幕(StatefulWidget)