El detector de eventos de valor único de Firebase no devuelve

He estado usando Firebase en mi aplicación con éxito durante varios meses. Acabo de terminar de actualizar para usar la versión de la versión, y tengo una edición dejada que no puedo figurar hacia fuera.

En mi función onCreate de MainActivity compruebo si el usuario está conectado a Firebase. Si el usuario ha iniciado sesión, intento recuperar el objeto de usuario que tengo en mi base de datos.

Esta es la única instancia en la aplicación donde estoy teniendo problemas con esto. He comprobado que el usuario está conectado y la DatabaseReference apuntó a la URL correcta.

Se crea DatabaseReference y se añade el oyente, pero no se activa nunca nada en el oyente …

FirebaseAuth auth = FirebaseAuth.getInstance(); if (auth != null && auth.getCurrentUser() != null) { DatabaseReference userRef = FirebaseDatabase.getInstance().getReference().child(USERS).child(auth.getCurrentUser().getUid()); userRef.addListenerForSingleValueEvent(new ValueEventListener() { @Override public void onDataChange(DataSnapshot dataSnapshot) { // Logic for success is here... } @Override public void onCancelled(DatabaseError databaseError) { // Logic for failure is here... } }); } 

¿Alguna idea sobre lo que estoy haciendo mal?

Hay un problema con la configuración de proyecto que hace que los tokens de Firebase Auth no se actualicen correctamente. Necesita agregar huellas dactilares SHA-1 para sus aplicaciones en la consola Firebase.

Vaya a la página de vista general del proyecto en Firebase Console. Seleccione el menú de desbordamiento de ajustes de la aplicación en cuestión y haga clic en "Administrar". Habrá un botón para agregar valores SHA-1.

Puede obtener valores SHA-1 para su aplicación siguiendo los pasos de esta guía . Puede que tenga que volver a descargar y agregar el archivo google-services.json a su aplicación en Android Studio de nuevo, pero no lo hice.

Esta pregunta de apilamiento similar similar a la respondida por un miembro del equipo de Firebase contiene más detalles si se requiere.

Si no está autenticando al usuario a través de ningún método, debe cambiar las reglas para

 { "rules": { ".read": "auth == null", ".write": "auth == null" } } 

Para garantizar que la autenticación no es necesaria para acceder a DB.

  • Base de datos SQLite en android y java
  • String.equals () con varias condiciones (y una acción en el resultado)
  • Android TextUtils esEmpty vs String.isEmpty
  • Forzar una pantalla completa Actividad para volver a medir / volver a dibujar en el curriculum vitae?
  • Kotlin android parcelable
  • GetContentView en Android
  • El menú de opciones de Android no se muestra
  • ¿Cuál es el uso de return statement en una función void
  • Fondos de Android Live con OpenGL ES 2.0?
  • Descargar imagen de Android desde el servidor y guardar en sdcard sin utilizar BitmapFactory
  • Cómo gestionar diferentes tareas que deben ser llamadas por AsyncTask
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.