从Firebase数据库中获取数据并与Flutter中的用户输入匹配

时间:2020-04-03 13:19:42

标签: flutter firebase-realtime-database

我要检查用户是否输入他们的号码,它将检查数据库中是否存在该号码,如果存在,它将用户提供的密码与数据库中存在的密码匹配,如果两者相同,则将项目屏幕。

This Is the database structure.

这是我的代码:在此代码中,它两次获取密码是第一次显示密码,第二次显示null。


  onPressed: () {
          if(numberController.text=='' || passwordController.text==''){
            Fluttertoast.showToast(msg: "Please Fill all the fields");
            debugPrint("Please Fill all");

          }
          else {
            var dbRef = FirebaseDatabase.instance
                .reference().child("NewUsers");
            dbRef.orderByKey().equalTo(
                numberController.text).once().then((
                DataSnapshot snapshot) {
                  debugPrint("hello");
              if(snapshot.value !=null){
                debugPrint("world");
              if (snapshot.value.isNotEmpty) {

                var ref = FirebaseDatabase.instance
                    .reference().child("NewUsers").child(numberController.text);
                ref.once()
                    .then((DataSnapshot snapshot) {
                  print(snapshot.value);
                  snapshot.value.forEach((key, values) {
                    print(values["Password"]);
                    if(passwordController.text==values["Password"]){
                      Navigator.pushReplacementNamed(context, '/item');
                      debugPrint("CorrectPassword");
                     // Fluttertoast.showToast(msg: "Correct Password");
                    }else{
                      debugPrint("InCorrectPassword");
                      Fluttertoast.showToast(msg: "Incorrect Password");
                    }
                  });
                });
              }
              else{

              }
              }
              else{
                Fluttertoast.showToast(msg: 'Please Signup First');
                debugPrint("Please Signup First");
              }
            });
          }
        },

以下是输出:

enter image description here

0 个答案:

没有答案