लोड फिर भी अब मैं एक समय है.क्या पर FireBase
से सभी डेटा हो रही है मैं करना चाहता हूँ करने के लिए कि सीमा में डेटा प्राप्त करने 15 की तरह एक समय में रिकॉर्ड। पहली बार उपयोगकर्ता को Firebase
से 15 रिकॉर्ड प्राप्त होते हैं और जब उपयोगकर्ता स्क्रीन के नीचे/शीर्ष पर अधिक डेटा लोड करते हैं तो 15 से अधिक रिकॉर्ड Firebase
से आते हैं और सूची के नीचे/शीर्ष में जोड़े जाते हैं।
मैं नीचे की तरह Firebase
से डेटाबेस के एक शीर्ष या तल पर 15 रिकॉर्ड प्राप्त करने के लिए तर्क को लागू किया है: -पुल प्रदर्शन करने के लिए सीमा में Firebase से डेटा प्राप्त करें ताज़ा करें और अधिक कार्यक्षमता
public class ChatActivity extends AppCompatActivity implements FirebaseAuth.AuthStateListener {
private FirebaseAuth mAuth;
private DatabaseReference mChatRef;
private Query postQuery;
private String newestPostId;
private String oldestPostId;
private int startAt = 0;
private SwipeRefreshLayout swipeRefreshLayout;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_chat);
mAuth = FirebaseAuth.getInstance();
mAuth.addAuthStateListener(this);
mChatRef = FirebaseDatabase.getInstance().getReference();
mChatRef = mChatRef.child("chats");
/////GETTING THE VIEW ID OF SWIPE LAYOUT
swipeRefreshLayout = (SwipeRefreshLayout) findViewById(R.id.swipeRefreshLayout);
/////GETTING FIRST 10 RECORDS FROM THE FIREBASE HERE
mChatRef.limitToFirst(10).addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot child : dataSnapshot.getChildren()) {
oldestPostId = child.getKey();
System.out.println("here si the data==>>" + child.getKey());
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
//////FOR THE PULL TO REFRESH CODE IS HERE
swipeRefreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
@Override
public void onRefresh() {
// Refresh items
System.out.println("Here==>>> "+oldestPostId);
///HERE "oldestPostId" IS THE KEY WHICH I GET THE LAST RECORDS FROM THE FIREBASE
mChatRef.startAt(oldestPostId).addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot child : dataSnapshot.getChildren()) {
System.out.println("here AFTER data added==>>" + child.getKey());
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}
});
}
मैं इसके लिए इतने पर यहाँ की खोज की है, लेकिन उम्मीद नहीं जा सके थे परिणाम, लिंक नीचे मैं के लिए यह
1. First Link
2. Second Link
3. Third Link
4. Forth Linkखोज की है जो
कृपया छवि में मेरी फायरबेस डेटा संरचना देखें।
मैं पहली बार में हो रही 15 या 10 रिकॉर्ड के लिए तर्क लागू कर दिया है और यह भी नहीं मिल रहा उचित समाधान (काम नहीं) सीमा में अधिक रिकॉर्ड लोड करने के लिए तर्क लागू किया works..and लेकिन कृपया मदद करें और मुझे बताएं कि मैं कहां गलत कर रहा हूं..धन्यवाद :)
https://github.com/milon87/ShakeTopUp/tree/master/app/src/main/java/xyz/enableit/shaketopup/offer आप इसे देख सकते हैं। हालांकि एमवीपी द्वारा इसे लागू किया गया है। बस ModelOfferImpl.java फ़ाइल की जांच करें। उम्मीद है कि यह मदद करेगा। –
इस समस्या का पूरा समाधान प्राप्त करने के लिए इसे देखें: - https://stackoverflow.com/a/44796538/3946958 –