Firebase DB: ¿Comprobar si el nodo no tiene hijos?
¿Cómo puedo saber si un nodo DB de Firebase no tiene hijos? Parece que la única manera de obtener datos es con los oyentes, y sólo se disparan cuando se agrega algo o se quita. En otras palabras, si no hay niños, nada disparará.
- Enviar notificación a un tema específico en Firebase en Java
- Inicialización de FirebaseApp en Firebase Android
- Actividad abierta en la notificación de firebase recibida en primer plano
- Obtener id token en la aplicación de Android y verificarlo en el servidor de back-end (¿Cómo usar id token?)
- Firebase - Múltiples usuarios simultáneamente actualizando el mismo objeto usando su valor antiguo
- Firebase android jars documentation / javadoc en Android Studio
- GoogleSignInResult devuelve DEVELOPER_ERROR en la aplicación de Android mediante Firebase
- Error "java.lang.StackOverflowError:" al intentar guardar el objeto en base de datos Firebase
- Firebase RecyclerView - Desplácese sobre la animación cuando se añade un elemento nuevo
- Android Firebase, simplemente obtiene los datos de un objeto secundario
- Notificación de Firebase sobre niño agregado / modificado
- Cómo usar el valor automático con firebase 9.2 en Android
- Android 2.2.2 Firebase Assistant vuelve a conectar tu aplicación a firebase
Puedes usar addValueEventListener
, y en onDataChange
tendrás alguna manera de no ver a los niños.
El addValueEventListener
funcionará porque arcoding this docs
Este método se activa una vez que el oyente está conectado y de nuevo cada vez que los datos, incluidos los niños, cambian
ref.addValueEventListener(new ValueEventListener() { @Override public void onDataChange(DataSnapshot snapshot) { // As cricket_007 we also can use hasChildren or getChildrenCount if(!snapshot.hasChildren()){ // db has no children } // OR this way if(snapshot.getChildrenCount() == 0){ // db has no children } // OR this way for (DataSnapshot postSnapshot : snapshot.getChildren()) { // db has no children } } @Override public void onCancelled(FirebaseError firebaseError) { } });
Puede comprobar si el child
está presente en Firebase
o no utilizando el método getChildrenCount()
o exists()
de DataSnapshot
.
searchFirebaseRef.addListenerForSingleValueEvent(new ValueEventListener() { @Override public void onDataChange(DataSnapshot dataSnapshot) { Log.d("FIREBASE",String.valueOf(dataSnapshot.getChildrenCount())); String childrenCount = String.valueOf(datasnapshot.getChildrenCount()); if(childrenCount != null){ }else{ //No childrens in Firebase Database } //OR if(!dataSnapshot.exists()){ //No data } } @Override public void onCancelled(DatabaseError databaseError) { } });
Vea este documento para más información. Espero que esto te ayude.
- CoordinatorLayout con barra de herramientas y fragmento
- Cómo instanciar un oyente por reflexión en Android