Recuperando datos de Firebase Realtime Database en Android
Soy nuevo en Firebase y NoSQL. Tengo una demostración de Android, con un campo de texto de autocompletado de ciudad en el que quiero rellenar las ciudades que tengo desde mi base de datos de Firebase, mientras escribo.
{ "cities":{
"Guayaquil":true,
"Gualaceo":true,
"Quito":true,
"Quevedo":true,
"Cuenca":true,
"Loja":true,
"Ibarra":true,
"Manta":true
}
}
Esto es lo que tengo hasta ahora.
¿Cómo puedo recuperar de las ciudades DB que comienzan con una letra (entrada del teclado)? Si empiezo a escribir "G", quiero recibir "Guayaquil" y "Gualaceo".
Si yo usoorderByValue
siempre devuelve una instantánea vacía.
Si yo usoorderByKey
devolver toda la lista
Query citiesQuery = databaseRef.child("cities").startAt(input).orderByValue();
citiesQuery.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
List<String> cities = new ArrayList<String>();
for (DataSnapshot postSnapshot: dataSnapshot.getChildren()) {
cities.add(postSnapshot.getValue().toString());
}
Nota: Si puede recomendar una mejor estructura de datos, de nada.