android - googletagmanager - tag manager developers
Firebase carga datos dinĂ¡micamente al desplazarse (3)
Firebase tiene FirebaseRecyclerAdapter para conectar RecyclerView directamente a la base de datos de firebase. Consulte la aplicación de muestra FriendlyChat de google para obtener más información: https://github.com/firebase/friendlychat
Necesito saber cómo cargar datos dinámicamente al desplazarse con Firebase. Si consulto datos con Firebase, todos los datos se deben cargar una vez o siempre se cambian los datos. Quiero cargar datos con Firebase por límite, y después de alcanzar este límite, cargar más datos y más y más.
Básicamente sería como una línea de tiempo de Facebook, como una red social.
Por ejemplo: quiero obtener los últimos registros de Firebase en el límite 50. Después de alcanzar este límite, descargaré los siguientes 50 datos. Me gustaría usar RecyclerView
y no la clase FirebaseRecycler
.
FirebaseRecyclerAdapter no resuelve mi pregunta. Gracias por la ayuda. En verdad, necesito cargar datos como la línea de tiempo de facebook del diseño de vista de puntos, y cargar los datos de Firebase (50 a 50. Descargar 50 datos, alcanzar el límite, cargar más datos del diseño inferior a 50) de la vista de puntos de la base de datos.
¿Usted me podría ayudar?
Esto funciona perfectamente
// Implement scroll listener
public void implementScrollListener() {
recyclerView
.addOnScrollListener(new RecyclerView.OnScrollListener() {
@Override
public void onScrollStateChanged(RecyclerView recyclerView,
int newState) {
super.onScrollStateChanged(recyclerView, newState);
// If scroll state is touch scroll then set userScrolled
// true
if (newState == AbsListView.OnScrollListener.SCROLL_STATE_TOUCH_SCROLL) {
userScrolled = true;
}
}
@Override
public void onScrolled(RecyclerView recyclerView, int dx,
int dy) {
super.onScrolled(recyclerView, dx, dy);
// Here get the child count, item count and visibleitems
// from layout manager
visibleItemCount = mLayoutManager.getChildCount();
totalItemCount = mLayoutManager.getItemCount();
pastVisiblesItems = mLayoutManager
.findFirstVisibleItemPosition();
// Now check if userScrolled is true and also check if
// the item is end then update recycler view and set
// userScrolled to false
if (userScrolled
&& (visibleItemCount + pastVisiblesItems) == totalItemCount) {
userScrolled = false;
RefreshData(oldestPostId);
}
}
});
}
puede usar los métodos startAt (), endAt () e equalTo (), enlace oficial ingrese la descripción del enlace aquí
// Find all dinosaurs that are at least three meters tall.
var ref = firebase.database().ref("dinosaurs");
ref.orderByChild("height").startAt(3).on("child_added", function(snapshot) {
console.log(snapshot.key)
});
respondió: https://.com/a/41583467/1429832