4

Ich muss wissen, wie man beim Scrollen mit Firebase Daten dynamisch lädt. Wenn ich Daten mit Firebase abfrage, müssen alle Daten einmal geladen werden oder immer Daten geändert werden. Ich möchte Daten mit Firebase pro Limit laden, und nach dem Erreichen dieser Grenze, laden Sie mehr Daten und mehr und mehr.Firebase lädt Daten beim Scrollen dynamisch

Es wäre im Grunde wie eine Timeline von Facebook - als soziales Netzwerk.

Zum Beispiel: Ich möchte die neuesten Datensätze von Firebase bei Limit 50 erhalten. Nach Erreichen dieser Grenze werde ich die nächsten 50 Daten herunterladen. Ich möchte RecyclerView und nicht FirebaseRecycler Klasse verwenden.

FirebaseRecyclerAdapter nicht meine Frage zu lösen. Danke für die Hilfe. Trully, ich muss Daten wie Facebook Timeline des Punktansichtslayouts laden und Daten Firebase laden (50 bis 50. 50 Daten herunterladen, Limit erreichen, mehr Daten des unteren Layouts auf 50 laden) der Punktansicht Datenbank.

Können Sie mir helfen?

+0

was haben Sie versucht, hier teilen, damit die Menschen Ihnen helfen können ..... – sushildlh

+0

@sushildlh ich versuche, nicht nichts, aber ich weiß, wie Daten mit Firebase zu laden. Allerdings weiß ich nicht, wie Daten beim Scrollen und WITH Firebase dynamisch geladen werden. Diese Frage braucht keinen Code für das Bestehen. –

+1

Mögliche Duplikate von [Android: Lade Daten wie Facebook und Twitter] (http://stackoverflow.com/questions/8664935/android-loading-datel-like-facebook-and-twitter) – sushildlh

Antwort

0

Firebase verfügt über FirebaseRecyclerAdapter zum direkten Verbinden von RecyclerView mit der Firebase-Datenbank. Siehe FriendlyChat Beispiel-App von Google für Details: https://github.com/firebase/friendlychat

+2

FirebaseRecyclerAdapter nicht meine Frage zu lösen. Danke für die Hilfe. Trully, ich muss Daten wie Facebook Timeline des Punktansichtslayouts laden und Daten Firebase laden (50 bis 50. 50 Daten herunterladen, Limit erreichen, mehr Daten des unteren Layouts auf 50 laden) der Punktansicht Datenbank. –

0

können Sie verwenden startat(), Endat() und EqualTo() -Methode, offizielle Link enter link description here

// 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) 
}); 

antwortete: https://stackoverflow.com/a/41583467/1429832

2

Diese funktioniert perfekt.

private RecyclerView recyclerView; 
    boolean userScrolled=false; 

    private boolean loading = true; 
    int pastVisiblesItems, visibleItemCount, totalItemCount; 

    LinearLayoutManager mLayoutManager; 



     recyclerView = (RecyclerView) findViewById(R.id.recycler_view); 


     mLayoutManager = new LinearLayoutManager(MainActivity.this); 
     recyclerView.setLayoutManager(mLayoutManager); 
     recyclerView.setItemAnimator(new DefaultItemAnimator()); 
     recyclerView.setAdapter(mAdapter); 


// 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); 
       } 
      } 
     }); 
} 
Verwandte Themen