updatechildren query guardar example datos datasnapshot consultas java android firebase firebase-database

java - query - Google firebase comprueba si el niño existe



query firebase android (2)

Intenta usar .childexists en combinación con .equalTo("Your specific name")

En mi aplicación, necesito verificar si un elemento dado de mi base de datos en firebase tiene un hijo con un nombre de pila. Esperaba que se pudiera hacer usando algo como:

DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference(); if (rootRef.childExists("name")) { //run some code }

Busqué pero no pude encontrar nada útil.


Editar 2; Vale la pena ponerse encima: creo que vale la pena mencionar que esto realmente está descargando todos los datos en esta instantánea solo para verificar si existe algún dato. Deberías estar atento aquí. Si la referencia es enorme (por ejemplo, la referencia raíz y no un elemento / propiedad específico), entonces debe encontrar un nodo más profundo que pueda usar para verificar la existencia o diseñar su estructura de datos de manera diferente para que sea posible una verificación eficiente.

Una referencia de base de datos es efectivamente la URL para esa información. Desea obtener datos para ver si existe un niño. Esta es la razón por la cual el método que parece estar buscando está en DataSnapshot .

DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference(); rootRef.addListenerForSingleValueEvent(new ValueEventListener() { @Override void onDataChange(DataSnapshot snapshot) { if (snapshot.hasChild("name")) { // run some code } } });

Ahora, este patrón de diseño se siente un poco extraño. Estás leyendo toda la base de datos solo para ver si existe "nombre". Puede hacer esto un poco más eficiente escuchando rootRef.child("name") y luego simplemente verificando si snapshot.exists() .

Si está intentando hacer la validación aquí, y no controlar el flujo, debería considerar poner este código en sus rules.json . rules.json .

editar : Originalmente utilicé el nombre de función incorrecto (childExists en lugar de hasChild)