Firebase安卓分页

Firebase安卓分页,第1张

概述我正在构建一个应用程序,它将显示存储在firebase上的视频.视频列表需要分页,一次最多可获取20个视频.这是我认为可行的代码privatevoidgetVideos(){QueryvideosQuery=FirebaseUtil.getVideosRef();videosQuery.startAt(0);videosQuery.end

我正在构建一个应用程序,它将显示存储在firebase上的视频.视频列表需要分页,一次最多可获取20个视频.

这是我认为可行的代码

  private voID getVIDeos() {        query vIDeosquery = FirebaseUtil.getVIDeosRef();        vIDeosquery.startAt(0);        vIDeosquery.endAt(1);        ChildEventListener vIDeosChildEventListener = new ChildEventListener() {            @OverrIDe            public voID onChildAdded(DataSnapshot dataSnapshot, String s) {                String date = dataSnapshot.getKey();                String temp = date;            }            @OverrIDe            public voID onChildChanged(DataSnapshot dataSnapshot, String s) {            }            @OverrIDe            public voID onChildRemoved(DataSnapshot dataSnapshot) {            }            @OverrIDe            public voID onChildMoved(DataSnapshot dataSnapshot, String s) {            }            @OverrIDe            public voID onCancelled(DatabaseError databaseError) {                Log.d(tag, "database error");            }        };        ValueEventListener vIDeovalueEventListener = new ValueEventListener() {            @OverrIDe            public voID onDataChange(DataSnapshot dataSnapshot) {                String date = dataSnapshot.getKey();                String temp = date;               long count =  dataSnapshot.getChildrenCount();                String value = dataSnapshot.getValue().toString();                temp = value;            }            @OverrIDe            public voID onCancelled(DatabaseError databaseError) {                Log.d(tag, "database error");            }        };//        vIDeosquery.addChildEventListener(vIDeosChildEventListener);        vIDeosquery.addValueEventListener(vIDeovalueEventListener);    }

但上面的代码检索整个视频列表而不是有限的视频.如何实施分页.

解决方法:

下面是我用于分页的代码,它首先显示最新的节点.

      public voID getimages() {            query imagesquery = FirebaseDatabase.getInstance().getReference().child("englishDps").child(mChildname).orderByKey().limitTolast(21);            ChildEventListener childEventListener = new ChildEventListener() {                @OverrIDe                public voID onChildAdded(DataSnapshot dataSnapshot, String s) {                    Image image = dataSnapshot.getValue(Image.class);                    image.setNodeKey(dataSnapshot.getKey());                    mTempImages.add(image);                    if (mTempImages.size() == 21) {                        mLastKey = mTempImages.get(0).getNodeKey();                        Collections.reverse(mTempImages);                        mTempImages.remove(mTempImages.size() - 1);                        mImages.addAll(mTempImages);                        setAdapter();                    }                }                @OverrIDe                public voID onChildChanged(DataSnapshot dataSnapshot, String s) {                }                @OverrIDe                public voID onChildRemoved(DataSnapshot dataSnapshot) {                }                @OverrIDe                public voID onChildMoved(DataSnapshot dataSnapshot, String s) {                }                @OverrIDe                public voID onCancelled(DatabaseError databaseError) {                    if (isAdded()) {                        Toast.makeText(getActivity(), "Problem loading more images...", Toast.LENGTH_LONG).show();                    }                }            };            imagesquery.addChildEventListener(childEventListener);        }  @OverrIDe    public voID getMoreImages() {        if (!mGettingMoreImages) {            mGettingMoreImages = true;            query imagesquery = FirebaseDatabase.getInstance().getReference("englishDps").child(mChildname).orderByKey().endAt(mLastKey).limitTolast(21);            ChildEventListener childEventListener = new ChildEventListener() {                @OverrIDe                public voID onChildAdded(DataSnapshot dataSnapshot, String s) {                    Image image = dataSnapshot.getValue(Image.class);                    image.setNodeKey(dataSnapshot.getKey());                    mMoreImages.add(image);                    if (mMoreImages.size() == 21) {                        mLastKey = mMoreImages.get(0).getNodeKey();                        Collections.reverse(mMoreImages);                        mMoreImages.remove(mMoreImages.size() - 1);                        mImages.addAll(mMoreImages);                        mMoreImages.clear();                        mGettingMoreImages = false;                        mImagesAdapter.notifyDataSetChanged();                        return;                    }                    if (mLastKey.equalsIgnoreCase(image.getNodeKey())) {                        Collections.reverse(mMoreImages);                        mImages.addAll(mMoreImages);                        mMoreImages.clear();                        mGettingMoreImages = false;                        mImagesAdapter.onNoMoreImages();                        ;                        mImagesAdapter.notifyDataSetChanged();                    }                }                @OverrIDe                public voID onChildChanged(DataSnapshot dataSnapshot, String s) {                }                @OverrIDe                public voID onChildRemoved(DataSnapshot dataSnapshot) {                }                @OverrIDe                public voID onChildMoved(DataSnapshot dataSnapshot, String s) {                }                @OverrIDe                public voID onCancelled(DatabaseError databaseError) {                    if (isAdded()) {                        Toast.makeText(getActivity(), "Problem loading more images...", Toast.LENGTH_LONG).show();                    }                }            };            imagesquery.addChildEventListener(childEventListener);        }    }
总结

以上是内存溢出为你收集整理的Firebase安卓分页全部内容,希望文章能够帮你解决Firebase安卓分页所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1103212.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存