¿Cómo comprobar si un niño existe en firebase?

Tengo un firebase que tiene un nodo llamado usuarios. El usuario da un nombre de usuario y quiero comprobar para ver si ese nombre de usuario ya existe como un hijo del nodo de usuarios. Este es el código que estoy intentando actualmente. La plataforma es android.

String myUsername = userNameInputET.getText().toString(); if(mUsersRef.child(myUsername) == null) { //do stuff } else { //do other stuff } 

Este código no funciona, siempre va a la otra, incluso si el niño con el nombre de usuario dado no existe. ¿Qué hacer?

Se desperdicia dos horas en este problema. Probado todo, pero ninguna de las soluciones funcionaba. He utilizado los datos de lectura de código de firebase onChildAdded para obtener los datos de usuario a continuación, determinarlo utilizando si condición else.

En la creacion

 mFirebaseDatabase=FirebaseDatabase.getInstance(); mMessagesDatabaseReference=mFirebaseDatabase.getReference().child("user").child(root).child(id); attachDatabaseReadListener(); 

Método de escucha

  private void attachDatabaseReadListener() { if ( mChildEventListener == null) { mChildEventListener = new ChildEventListener() { @Override public void onChildAdded(DataSnapshot dataSnapshot, String s) { User u = dataSnapshot.getValue(User.class); mUser=u.GetUser(); mEmail=u.GetEmailId(); Toast.makeText(getApplicationContext(),"here"+mUser,Toast.LENGTH_SHORT).show(); } public void onChildChanged(DataSnapshot dataSnapshot, String s) {} public void onChildRemoved(DataSnapshot dataSnapshot) {} public void onChildMoved(DataSnapshot dataSnapshot, String s) {} public void onCancelled(DatabaseError databaseError) {} }; mMessagesDatabaseReference.addChildEventListener( mChildEventListener); } } 

Comprobación de la condición, puede ser cualquier cosa.

  if(mUser==null&&mEmail==null) { //do something here } else { //do nothing } 

Nota: se requiere un cierto tiempo para ejecutar en el niño agregado así que agrega el retraso apropiado Tengo solamente un nodo así que este código funcionó perfectamente para mí. Si cualquier otra solución o solución más fácil está disponible por favor hágamelo saber.

si el nodo raíz no existe entonces también mostrará null así que tenga esto en cuenta antes de implementar el nodo raíz push de la aplicación.

  String myUsername="User"; if (root.child(myUsername).getRoot() == null) { } else { Map<String, Object> map = new HashMap<String, Object>(); map.put("user", ""); root.updateChildren(map); 

hola mira esta https://firebase.google.com/docs/reference/js/firebase.database.DataSnapshot

 // Test for the existence of certain keys within a DataSnapshot var ref = firebase.database().ref("users/ada"); ref.once("value") .then(function(snapshot) { var a = snapshot.exists(); // true var b = snapshot.child("name").exists(); // true var c = snapshot.child("name/first").exists(); // true var d = snapshot.child("name/middle").exists(); // false }); 

Creo que necesitas cambiar tu código para

 String myUsername = userNameInputET.getText().toString(); if(mUsersRef.child(myUsername).getValue() == null) { //do stuff } else { //do other stuff } 
  • No se pueden expandir notificaciones de Firebase
  • Firebase Cloud Messaging problema con suscribirse // cancelar la suscripción del tema
  • PopulateViewHolder no se ejecuta con FirebaseRecyclerAdapter (Android)
  • Obtener id token en la aplicación de Android y verificarlo en el servidor de back-end (¿Cómo usar id token?)
  • Notificaciones de Firebase en primer plano
  • Rare NullPointerException en GoogleApiClient usando Firebase
  • ¿Cómo probar una invitación de firebase?
  • Cómo resolver No se puede encontrar la actividad explícita en firebase AuthUi?
  • Firebase setDisplayName del usuario al crear el usuario Android
  • Actualización de Firebase está haciendo nueva con el mismo id excepto el último carácter
  • Firebase Analytics se sube correctamente pero no se muestra en la consola de Firebase incluso después de 2 días
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.