Android Firebase, simplemente obtiene los datos de un objeto secundario

He estado buscando una manera de obtener los datos de un objeto secundario en Android Firebase.

He encontrado cosas como Firebase recuperar niño Android . Todas las soluciones están sugiriendo usar un "ChildEventListener", sin embargo necesito conseguir estos datos en este momento, no cuando se mueve, se suprime, se pone al día, etcétera.

Mis datos se guardan en https: //.firebaseio.com/users//creation como una cadena. Creo que debe haber alguna manera sencilla de acceder a eso sin necesidad de hacer demasiado, porque si copio la URL exacta a mi navegador, puedo ver el: 'creation: "2015/05/31 21:33:55"' Justo allí en mi "Firebase Forge Dashboard".

Si alguien sabe cómo acceder a este sin un oyente para un cambio que sería apreciado!

¡Gracias!

Los oyentes de Firebase disparan tanto los datos iniciales como los cambios.

Si está buscando sincronizar los datos de una colección, utilice ChildEventListener . Si está buscando sincronizar un solo objeto, utilice ValueEventListener . Tenga en cuenta que en ambos casos no está "recibiendo" los datos. Lo está sincronizando, lo que significa que la devolución de llamada se puede invocar varias veces: para los datos iniciales y siempre que los datos se actualizan.

Esto está incluido en la guía de inicio rápido de Firebase para Android . El código relevante y la cotización:

 FirebaseRef.child("message").addValueEventListener(new ValueEventListener() { @Override public void onDataChange(DataSnapshot snapshot) { System.out.println(snapshot.getValue()); //prints "Do you have data? You'll love Firebase." } @Override public void onCancelled(DatabaseError databaseError) { } }); 

En el ejemplo anterior, el evento de valor se disparará una vez para el estado inicial de los datos y, de nuevo, cada vez que cambie el valor de esos datos.

Por favor, pasar unos momentos para pasar por ese comienzo rápido. No debe tomar más de 15 minutos y le ahorrará de un montón de rascarse la cabeza y preguntas. La Firebase Android Guide es probablemente un buen destino para esta pregunta: https://firebase.google.com/docs/database/android/read-and-write

No lees directamente un valor. Puede establecerlo con .setValue() , pero no hay .getValue () en el objeto de referencia.

Tienes que usar un oyente. Si sólo desea leer el valor una vez, utilice ref.addListenerForSingleValueEvent() .

Ejemplo:

 Firebase ref = new Firebase("YOUR-URL-HERE/PATH/TO/YOUR/STUFF"); ref.addListenerForSingleValueEvent(new ValueEventListener() { @Override public void onDataChange(DataSnapshot dataSnapshot) { String value = (String) dataSnapshot.getValue(); // do your stuff here with value } @Override public void onCancelled(FirebaseError firebaseError) { } }); 

Fuente: https://www.firebase.com/docs/android/guide/retrieving-data.html#section-reading-once

Solo busco datos específicos de nodos y su funcionamiento perfecto para mí

 mFirebaseInstance.getReference("yourNodeName").getRef().addValueEventListener(new ValueEventListener() { @Override public void onDataChange(DataSnapshot dataSnapshot) { for (DataSnapshot postSnapshot : dataSnapshot.getChildren()) { Log.e(TAG, "======="+postSnapshot.child("email").getValue()); Log.e(TAG, "======="+postSnapshot.child("name").getValue()); } } @Override public void onCancelled(DatabaseError error) { // Failed to read value Log.e(TAG, "Failed to read app title value.", error.toException()); } }); 

Almaceno mis datos de esta manera:

 accountsTable -> key1 -> account1 key2 -> account2 

Para obtener datos de objetos:

 accountsDb = mDatabase.child("accountsTable"); accountsDb.child("some key").addListenerForSingleValueEvent(new ValueEventListener() { @Override public void onDataChange(DataSnapshot snapshot) { try{ Account account = snapshot.getChildren().iterator().next() .getValue(Account.class); } catch (Throwable e) { MyLogger.error(this, "onCreate eror", e); } } @Override public void onCancelled(DatabaseError error) { } }); 
  • La aplicación de Android se bloquea al conectarse a Firebase
  • Firebase Analytic Search_Term El valor del parámetro no se muestra
  • "GoogleApiClient no está conectado todavía" al cerrar la sesión cuando se utiliza la autorización de Firebase con google inicie sesión
  • Paginación de Firebase android
  • Firebase Crash Library - NullPointerException en la consola
  • Los eventos de Firebase que no muestran el atributo NAME
  • Cómo acceder a los datos de Firebase sin utilizar addValueEventListener
  • ¿Por qué obtengo "Falló al rebotar al escribir" cuando convertí JSON de Firebase en objetos Java?
  • Indexación de aplicaciones de Android -> FirebaseAppIndexingInvalidArgumentException
  • No se puede ver la tarea del archivo de asignación de carga de Firebase
  • Cómo actualizar Google Play Services a 9.8.7
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.