简体   繁体   English

Firebase分页limitToFirst Android

[英]Firebase Pagination limitToFirst Android

I dont know why my limitToFirst not working. 我不知道为什么我的limitToFirst无法正常工作。 I have followed the Firebase documentation. 我遵循了Firebase文档。

  databaseReference = FirebaseDatabase.getInstance().getReference();
  Query queryRef = databaseReference.orderByValue().limitToFirst(6);
            queryRef.addChildEventListener(new ChildEventListener() {
                @Override
                public void onChildAdded(DataSnapshot dataSnapshot, String s) {
                    for(DataSnapshot ds : dataSnapshot.getChildren()) {
                        WallpaperInfo userId =  ds.getValue(WallpaperInfo.class);
                        list.add(userId);
                        oldestPostId = ds.getKey();
                }
                    Log.d("list",String.valueOf(list.size()));
                    adapter = new WallpaperGridAdapter(rootView.getContext(),list);
                    gridView.setAdapter(adapter);
                    adapter.notifyDataSetChanged();
                    adapter.notifyDSC();
                }
...
};

I am getting all data in my list. 我正在获取列表中的所有数据。
My JSON data (its dummy) 我的JSON数据(其虚拟对象)

{
  "walls" : {
    "-L7miwY988GOdQKhSYZp" : {
      "artistID" : 141,
      "category" : "Luffy",
      "downloads" : 1421,
      "favs" : 71,
      "picURL" : "https://firebasestorage.googleapis.com/v0/b/onepiecewallpaper-5e0c5.appspot.com/o/walls%2Fimage%3A87242?alt=media&token=e1654c8d-8be4-465a-a8cd-cb9075716824",
      "sets" : 7877,
      "tags" : [ "one piece", "Luffy" ],
      "views" : 9898
    },
....    }

I am logging keys too which giving me output:- 我也在记录密钥,这给了我输出:

03-18 11:11:59.893 11733-11733/we_pirate.one.com.onepiecewallpaper D/keys: -L7miwY988GOdQKhSYZp
03-18 11:11:59.894 11733-11733/we_pirate.one.com.onepiecewallpaper D/keys: -L7mjSINcbL_7N7BPgP1
03-18 11:11:59.895 11733-11733/we_pirate.one.com.onepiecewallpaper D/keys: -L7ms78xdhps8LPTfWnp
03-18 11:11:59.896 11733-11733/we_pirate.one.com.onepiecewallpaper D/keys: -L7msI6VC5jzOA9489mO
03-18 11:11:59.896 11733-11733/we_pirate.one.com.onepiecewallpaper D/keys: -L7msbEs4SZwlgxgLiTu
03-18 11:11:59.897 11733-11733/we_pirate.one.com.onepiecewallpaper D/keys: -L7nq2pAl9XEQwvT-ad9
03-18 11:11:59.898 11733-11733/we_pirate.one.com.onepiecewallpaper D/keys: -L7oCUSlOo4sz974sL1o
03-18 11:11:59.899 11733-11733/we_pirate.one.com.onepiecewallpaper D/keys: -L7oCZ8u-j2aXacDN3az
03-18 11:11:59.899 11733-11733/we_pirate.one.com.onepiecewallpaper D/keys: -L7oCbQfRSmv00AWaFWi
03-18 11:11:59.900 11733-11733/we_pirate.one.com.onepiecewallpaper D/keys: -L7oCfAfEecc_4NG-0Ir
03-18 11:11:59.901 11733-11733/we_pirate.one.com.onepiecewallpaper D/keys: -L7oCjU90zMgbcnvi-Cz
03-18 11:11:59.902 11733-11733/we_pirate.one.com.onepiecewallpaper D/keys: -L7oCp5fI5HpJs6cU_Fw
03-18 11:11:59.902 11733-11733/we_pirate.one.com.onepiecewallpaper D/keys: -L7oCvejzGo8e-QHtYWz
03-18 11:11:59.902 11733-11733/we_pirate.one.com.onepiecewallpaper D/list: 13

You need to change 你需要改变

databaseReference = FirebaseDatabase.getInstance().getReference(); 

to databaseReference = FirebaseDatabase.getInstance().getReference().child("walls") then in onChildAdded use dataSnapshot.getValue(WallpaperInfo.class); databaseReference = FirebaseDatabase.getInstance().getReference().child("walls")然后在onChildAdded使用dataSnapshot.getValue(WallpaperInfo.class); instead of for loop. 而不是for循环。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM