Firebase Android addListenerForSingleValueEvent a veces no devuelve datos

Cuando mi aplicación se inicia, comprobar los detalles del usuario actual en mi base de datos Firebase (estoy almacenando es uid para eso).

Estoy adjuntando addListenerForSingleValueEvent a la referencia del usuario para leer sus datos.

Mi problema es que a veces, no devuelve ningún valor, ni éxito ni fracaso.

Solamente el borrado de datos de la aplicación lo resuelve, pero por supuesto obliga al usuario a iniciar sesión nuevamente.

He leído algunos posts en SO, pero no encontré ninguna solución.

Aquí está mi pieza de código:

DatabaseReference newUser = FirebaseDatabase.getInstance().getReference("users/"+uid); newUser.addListenerForSingleValueEvent(new ValueEventListener() @Override public void onDataChange(DataSnapshot snapshot) {} @Override public void onCancelled(DatabaseError databaseError) {} }); 

La recomendación que he visto para esto es llamar a keepSynced(true) en el objeto Query .

Mi conjetura es user/:id no existe. Compruebe su salida de error:

 DatabaseReference newUser = FirebaseDatabase.getInstance() .getReference("users") .child(uid) .addListenerForSingleValueEvent(new ValueEventListener() @Override public void onDataChange(DataSnapshot snapshot) { if (snapshot.exists()) { Log.i(TAG, snapshot.val()); } else { Log.e(TAG, "Not found: " + uid); } } @Override public void onCancelled(DatabaseError databaseError) { Log.e(TAG, databaseError.toString(); } }); 

He estado teniendo el mismo problema durante días y finalmente lo arreglé.

Parece que mi clave Api fue cambiado! Y eso es lo que estaba impidiendo addListenerForSingleValueEvent() de volver!
Vaya a Firebase Console , abra su proyecto, haga clic en el icono de configuración Icono de rueda dentada Y vaya a Configuración del proyecto . Allí podrá ver la Web API Key . Tome eso y cópielo en su archivo google-services.json en el directorio de su proyecto. Aquí hay un fragmento de ese archivo:

  ... ], "api_key": [ { "current_key": "<COPY Web Api Key HERE>" } ], ... 

Eso es. Después de reemplazar el valor de "current_key" con la clave de Firebase, volvió a funcionar (anteriormente tenía alguna otra clave creo que generó en la consola de Google y funcionó durante meses.Hace unos días dejó de funcionar)

  • Firebase Analytics Debug View no muestra nada
  • Firebase recupera datos de un niño por clave
  • Mensajería Firebase - "demasiadas alarmas" en los dispositivos Android de Samsung
  • OR cláusula en firebase java android
  • Notificaciones de Firebase en primer plano
  • Cómo obtener la clave del valor en firebase
  • Cómo rellenar Android ListView con información de la consulta de Firebase
  • Android: la aplicación de indexación de aplicaciones de Firebase no se muestra en las sugerencias de autocompletar de google
  • Firebase android ¿Cómo evitar que FirebaseRecyclerAdapter se actualice automáticamente?
  • Firebase: ¿Puedo usar el nuevo kit de cuentas de Facebook para autenticar usuarios de aplicaciones?
  • Los datos extraídos de FirebaseDatabase se muestran en 3 AlertDialogs separados en lugar de uno
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.