Cómo buscar un valor en firebase Android

Estoy guardando datos de la siguiente manera en Firebase:

estructura

Quiero encontrar todos los registros que tienen #Yahoo en su título. ¿Cuál será la pregunta exacta para eso?

Estoy confundido con la clave aleatoria creada. No estoy seguro de cómo manejar esto, así que lo estoy publicando aquí.

Firebase firebase = new Firebase(Constants.FIREBASE_URL_USER_TASKS).child(Utils.encodeEmail(unProcessedEmail)); Query queryRef = firebase.orderByKey().startAt("#" + mHashTag).endAt("#" + mHashTag + "\uf8ff"); queryRef.addValueEventListener(new ValueEventListener() { @Override public void onDataChange(DataSnapshot dataSnapshot) { mTasksList.clear(); mAdapter.notifyDataSetChanged(); for (DataSnapshot task : dataSnapshot.getChildren()) { mTasksList.add(task.getValue(TaskModel.class)); } mAdapter.notifyItemRangeInserted(0, mTasksList.size()); mSwipeToRefresh.post(new Runnable() { @Override public void run() { mSwipeToRefresh.setRefreshing(false); } }); } @Override public void onCancelled(FirebaseError firebaseError) { mSwipeToRefresh.post(new Runnable() { @Override public void run() { mSwipeToRefresh.setRefreshing(false); } }); } }); 

No puede buscar ningún elemento cuyo título contenga #Yahoo . Ver: ¿Cómo realizar la operación SQL "LIKE" en firebase?

Sin embargo, puede buscar elementos cuyo título empiece por #Yahoo :

 Firebase firebase = new Firebase(Constants.FIREBASE_URL_USER_TASKS).child(Utils.encodeEmail(unProcessedEmail)); Query queryRef = firebase.orderByChild("title").startAt("#" + mHashTag) 

Para que esto funcione bien, debe agregar un índice a sus reglas de Firebase :

 "rules": { "userTasks": { "$email": { ".indexOn": "title" // index tasks in their title property } } } 

Esto funciona con Google Firebase.

 DatabaseReference mFirebaseDatabaseReference = FirebaseDatabase.getInstance().getReference(); Query query = mFirebaseDatabaseReference.child("userTasks").orderByChild("title").equalTo("#Yahoo"); query.addValueEventListener(valueEventListener); ValueEventListener valueEventListener = new ValueEventListener() { @Override public void onDataChange(DataSnapshot dataSnapshot) { for (DataSnapshot postSnapshot : dataSnapshot.getChildren()) { //TODO get the data here } } @Override public void onCancelled(DatabaseError databaseError) { } }; 
  • Cómo agregar SHA-1 a la aplicación Android
  • Firebase para Android - W / PersistentConnection: pc_0 - Las credenciales de autenticación proporcionadas no son válidas
  • FCM - onTokenRefresh () nunca se llama
  • Añadir acción a la notificación Firebase
  • ¿Cómo probar una invitación de firebase?
  • Icono de notificación con el nuevo sistema de mensajería de Cloud Firebase
  • ¿Cómo dar acceso diferente a diferentes tipos de usuarios para iniciar sesión en Firebase?
  • Obtener los datos de la Firebase en el límite para realizar pull para actualizar y cargar más funcionalidad
  • ¿Qué sucede realmente cuando la persistencia está habilitada en Firebase?
  • cordova fcm plugin en Android data.wasTapped no funciona
  • Cómo recuperar campos adicionales de Firebase Token personalizado en "UserInfo"
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.