Почему firebase возвращает true даже при пустом вводе - PullRequest
0 голосов
/ 04 июля 2018

В основном, программа должна проверять наличие данных в базе данных Firebase на основе ввода и отображать всплывающее окно соответствующим образом, но если я оставил ввод пустым, каким-то образом он все же считал, что данные существуют, вызвав ' Запрос 'всплывающее окно.

@Override
public void onClick(View v) {

  final String input = mInput.getText().toString();

  DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
  DatabaseReference idRef = rootRef.child("Patient");
  idRef.addListenerForSingleValueEvent(new ValueEventListener() {

  @Override
  public void onDataChange(DataSnapshot dataSnapshot) {

      if (dataSnapshot.child(input).getValue() != null) {
          startActivity(new Intent(addNew.this, Request.class));
      } else{
          startActivity(new Intent(addNew.this, Fail.class));
      }
  }

      @Override
      public void onCancelled(DatabaseError databaseError) {}
   });
}

Хотелось бы узнать, как ее решить, чтобы пустой ввод считался данными о несуществовании, спасибо за помощь

Ответы [ 2 ]

0 голосов
/ 05 июля 2018

Вы проверяете, является ли значение != null, но дело в том, что если значение равно нулю, firebase не создает этот дочерний узел и не удаляет его. Вместо этого вы можете проверить dataSnapshot.hasChild("input").

0 голосов
/ 04 июля 2018

Чтобы решить эту проблему, просто проверьте длину строки input, прежде чем создавать «всплывающее окно запроса».

if(input.length() != 0) {
    //"Request pop-out window"
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...