をリフレッシュしてロードするためにプルを実行するには、Get今私は15のようなLIMITS内のデータを取得することを私はやりたい1 time.WhatでFireBase
からすべてのデータを取得しています一度にレコード。初めてのユーザーと同じように、Firebase
から15レコードを取得し、ユーザーが画面の下部/ TOPに1539を超えるレコードを追加し、リストの下部/ TOPに追加する必要があります。
私は以下のように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) {
}
});
}
});
}
私はSOそれのためにここで検索しましたが、期待されていませんでした私はそれ
1. First Link
2. Second Link
3. Third Link
4. Forth Linkで検索しましたリンクの下の結果、
は私が初めてで取得15のOR 10のレコードのロジックを実装しているし、それはまた、得ていない(動作しない)適切な解決策を限度に複数のレコードをロードするためのロジックを実装しますがworks..and私が間違っていることを教えてください。ありがとうございます:)
https://github.com/milon87/ShakeTopUp/tree/master/app/src/main/java/xyz/enableit/shaketopup/offer これを確認できます。これはMVPによって実装されています。 ModelOfferImpl.javaファイルをチェックしてください。それが助けてくれることを願って。 –
これがこの問題の完全な解決策を得るために参照してください: - https://stackoverflow.com/a/44796538/3946958 –