【问题标题】:Get only certain amount of children from Firebase Database从 Firebase 数据库中只获取一定数量的孩子
【发布时间】:2017-01-15 22:21:33
【问题描述】:

在我的 Android 应用中,我使用此代码从 firebase 数据库中检索帖子:

ArrayList<Post> posts = new ArrayList<>();
dbRef.addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {
                for(DataSnapshot dsp : dataSnapshot){
                   String author = dsp.child("author").getValue().toString();
                   String text = dsp.child("author").getValue().toString();
                    posts.add(new Post(author,text));
            }
                @Override
                public void onCancelled(DatabaseError databaseError) {

                }
            });

但这会返回所有帖子,如果有很多帖子,我认为将它们全部保存在内存中并不是一个好主意。有没有办法只获得一定数量的节点的孩子?例如,一开始我想先获得 10 个,然后再获得 10 个,以此类推

【问题讨论】:

    标签: android firebase firebase-realtime-database


    【解决方案1】:

    您正在寻找limitToFirst()(或limitToLast())。

    ArrayList<Post> posts = new ArrayList<>();
    Query query = dbRef.orderByKey().limitToFirst(10);
    query.addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {
                for(DataSnapshot dsp : dataSnapshot){
                   String author = dsp.child("author").getValue().toString();
                   String text = dsp.child("author").getValue().toString();
                    posts.add(new Post(author,text));
            }
                @Override
                public void onCancelled(DatabaseError databaseError) {
    
                }
            });
    

    请参阅Firebase documentation on queries 了解其所有功能的说明。

    【讨论】:

      【解决方案2】:

      您需要使用 DataSnapShot 来检索更具体的信息。

      有一个适用于 Android 的 Firebase 指南解释了如何使用:Firebase Android Guide

      如果您希望在 Stack OverFlow 上看到一个小例子,这里的答案似乎在做一些您想要实现的事情:Firebase Get Children

      【讨论】:

        猜你喜欢
        • 2021-05-28
        • 1970-01-01
        • 2017-04-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-03-06
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多