Извлечь данные c из базы данных Firebase Realtime в Flutter - PullRequest
0 голосов
/ 01 апреля 2020

Я хочу проверить, существует ли указанный номер c в базе данных, поэтому он извлечет пароль, соответствующий номеру, иначе он вернет номер, которого не существует в базе данных во Flutter.

enter image description here

var dbRef = FirebaseDatabase.instance.reference().child("NewUsers");
dbRef.equalTo(numberController.text).once().then((DataSnapshot snapshot){
  if(snapshot.value.isNotEmpty){
    var dbRef = FirebaseDatabase.instance.reference();
    dbRef.child(numberController.text).once().then((DataSnapshot snapshot){
      snapshot.value.forEach((key,values) {
        print(values["Password"]);
      });
    });
  }
  else{
    print("pleasesignup first");
  }
});

После этого я получаю сообщение об ошибке Unhandled Exception: NoSuchMethodError: The getter 'isNotEmpty' was called on null

Ответы [ 2 ]

1 голос
/ 01 апреля 2020

Попробуйте следующее:

var dbRef = FirebaseDatabase.instance.reference().child("newUsers");
dbRef.orderByKey().equalTo(numberController.text).once().then((DataSnapshot snapshot){
     if(snapshot.value.isNotEmpty){
         var ref = FirebaseDatabase.instance.reference("newUsers");
           ref.child(numberController.text).once().then((DataSnapshot snapshot){
                print(snapshot.value); 
                snapshot.value.forEach((key,values) {
                   print(values["Password"]);
              });
          });
       }
   });

Сначала добавьте ссылку на newUsers и, используя запрос orderByKey().equalTo(numberController.text), а затем, выполнив snapshot.value.isNotEmpty, он проверит, существует ли ключ в базе данных, если он получает password.

0 голосов
/ 01 апреля 2020

Попробуйте это:

var dbRef = FirebaseDatabase.instance.reference().child("newUsers");
dbRef.orderByKey().equalTo(numberController.text).once().then((DataSnapshot snapshot){
     if(snapshot && snapshot.value){
         var ref = FirebaseDatabase.instance.reference("newUsers");
         ref.child(numberController.text).once().then((DataSnapshot snapshot){
           print(snapshot.value); 
           snapshot.value.forEach((key,values) {
             print(values["Password"]);
          });
        });
     }
     else{
       print("No Record Found");
     }
 });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...