Ngugi Kariuki:
Quiero hacer una consulta que comprueba si existe un cierto nombre (Presidente o Secretario) dentro de una base de datos. La estructura de la base de datos es como sigue.
Tengo este código, pero no su trabajo. ¿Hay algo que estoy haciendo mal?
mDatabase = FirebaseDatabase.getInstance().getReference();
Query presidentquery = mDatabase.child("validate").child(uid).equalTo("President");
presidentquery.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
if (dataSnapshot.exists()) {
for (DataSnapshot dataSnapshot1 : dataSnapshot.getChildren()) {
Candidate p = dataSnapshot1.getValue(Candidate.class);
president.setEnabled(false);
president.setText("Voted Already");
}
}
else{
president.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(Home.this, AllCandidates.class));
finish();
}
});
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
Frank Puffelen:
Parece que sabes el nodo exacto que desea cargar, en cuyo caso no se necesita una equalTo
. En su lugar puede buscar el nodo con:
Query presidentquery = mDatabase.child("validate").child(uid).child("President");
El resto de su código puede permanecer igual.