Olá, boa noite.
Estou fazendo um aplicativo que utiliza Firebase como banco de dados em tempo real. Estou 'travado' numa parte que à primeira vista deveria ser simples.
Eu recebo na Activity atual um valor que inseri em um EditText da Activity anterior. Então no meu método 'metodo1()' eu verifico se o dado que eu trouxe da Activity anterior existe no banco de dados e então será exibido um SwipeCards com todos os usuários do banco de dados que possuem aquele valor especifico em um dos atributos. O problema é que tanto o else quanto o if retornam que o valor "Não existe". Abaixo o código:
private String valorBuscado;
private void metodo1() {
Intent intent = getIntent();
Bundle bundle = intent.getExtras();
valorBuscado= bundle.getString("valorBuscado");
usuariosDb.addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {
if (dataSnapshot.child("valor").getValue()!=null){
if (dataSnapshot.child("valor").getValue().toString().equals(valorBuscado)){
Toast.makeText(Activity10.this, "Valor Encontrado.", Toast.LENGTH_LONG).show();
}
else{
Toast.makeText(Activity10.this, "Nenhum Valor Encontrado.", Toast.LENGTH_LONG).show();
}
}
@Override
public void onChildChanged(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {
}
@Override
public void onChildRemoved(@NonNull DataSnapshot dataSnapshot) {
}
@Override
public void onChildMoved(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
}
Se eu busco um valor que existe em algum usuário do BD, ele exibe primeiro 'Nenhum Valor Encontrado.' e depois 'Valor Encontrado.' No caso de um valor inexistente ocorre o mesmo. Só que ele exibe dois 'Nenhum Valor Encontrado.'
Alguma ideia? Obrigado!