¿Cómo solicitar datos de la base de datos de firebase de nuevo?

Tengo una aplicación con un diseño de swipe-to-refresh .

Cuando se desplaza hacia arriba en un diseño de Desplazamiento para actualizar, los datos se actualizan desde Internet. (para los que no lo saben)

Mi fuente de datos es Firebase.

En mi aplicación si el usuario no está conectado, a continuación, muestra un mensaje de error de red, después de que el Internet está encendido no recibe los datos.

¿Cómo puedo obtener datos de nuevo desde mi base de datos.

Aquí está el código:

protected void onCreate(Bundle savedInstanceState) { ... mFirebaseDatabase = FirebaseDatabase.getInstance(); // my database mNewsDatabaseReference = LoginActivity.mFirebaseDatabase.getReference() .child("data").child("news"); // my database reference // my ChildEventListener mNewsChildEventListener = new ChildEventListener() { @Override public void onChildAdded(DataSnapshot dataSnapshot, String s) { // my data News news = dataSnapshot.getValue(News.class); // add the news to the top of my ArrayAdapter myAdapter.insert(news, 0); } @Override public void onChildChanged(DataSnapshot dataSnapshot, String s) {} @Override public void onChildRemoved(DataSnapshot dataSnapshot) {} @Override public void onChildMoved(DataSnapshot dataSnapshot, String s) {} @Override public void onCancelled(DatabaseError databaseError) {} }; // my OnRefreshListener mySwipeRefreshLayout.setOnRefreshListener( new SwipeRefreshLayout.OnRefreshListener() { @Override public void onRefresh() { // what Should I do in here to request the data again?! // I know that I should empty my adapter first then request the data myAdapter.clear(); } } ); } 

Cuando se utiliza firebase base de datos en tiempo real, no hay necesidad de hacer la solicitud de nuevo. Una vez que los datos cambien, automáticamente buscará los datos para usted y uno de sus oyentes va a ser llamado.

Su evento onChildChanged () se disparará cada vez que se modifique un nodo secundario de news , incluyendo cualquier modificación a los descendientes del nodo secundario.

Para habilitar las capacidades fuera de línea, no olvide usar setPersistenceEnabled(true)

Consulte la documentación para obtener más información

La respuesta anterior es muy útil, pero para la pregunta ¿cómo solicitar datos de nuevo ?!

Sólo tiene que conectar a los oyentes una vez más.

Pero recuerde separar los oyentes antiguos primero para que los datos no aparezcan dos veces en el adaptador.

Aquí está el código:

  mNewsSwipeRefresh.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() { @Override public void onRefresh() { myAdapter.clear(); mNewsDatabaseReference.removeEventListener(mNewsChildEventListener); mNewsDatabaseReference.addChildEventListener(mNewsChildEventListener); } }); 
  • SwipeRefreshLayout con NestedScrollView y LinearLayout
  • Scrollup no funciona en StickyListviewHeader con SwipeRefreshLayout
  • SwipeRefreshLayout intercepta con ViewPager
  • ¿Cómo configurar la vista de actualización personalizada en SwipeRefreshLayout?
  • La nueva versión de SwipeRefreshLayout causa un dibujo erróneo de vistas
  • SyncAdapter siempre en estado pendiente
  • ¿Cómo deshabilitar la acción "pull to refresh" y usar sólo el indicador?
  • SwipeRefreshLayout en API 21
  • Desplazar SwipeRefreshLayout con RecyclerView Actualizar en cualquier lugar de android 2.2
  • SwipeRefreshLayout dentro de ViewPager
  • SwipeRefreshLayout + ViewPager, limitar el desplazamiento horizontal solamente?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.