首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android Firebase数据库限制10,但加起来

Android Firebase数据库限制10,但加起来
EN

Stack Overflow用户
提问于 2019-01-12 12:01:15
回答 1查看 56关注 0票数 0

我正在尝试将Firebase实时数据库作为数据库连接到我的应用程序的聊天。我知道我可以通过对我的Firebase引用调用limitToLast(10)函数,将我访问的条目限制为最后10个条目。

我现在的问题是,当我这样做的时候,它会限制引用总是显示最后10个条目,即使我从我的应用程序添加更多的条目。然而,当我在我的应用程序中添加更多条目时,我希望它会被计数。例如,如果我再添加2个条目,我的聊天列表将显示12个条目,以此类推。

这是我到目前为止添加了limitToLast(10)的代码。

代码语言:javascript
复制
DatabaseReference tRef = database.getReference(getString(R.string.firebase_channel));
tRef.limitToLast(10).addChildEventListener(new ChildEventListener() {
        @Override
        public void onChildAdded(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {
            Chat c = dataSnapshot.getValue(Chat.class);
            chatAdapter.newChat(c, dataSnapshot.getKey());
            Log.d(TAG, "onChildAdded\t" + c.asChat());
        }

        @Override
        public void onChildChanged(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {
            Chat c = dataSnapshot.getValue(Chat.class);
            chatAdapter.modifyChat(c, dataSnapshot.getKey());
            Log.d(TAG, "onChildChanged\t" + c.asChat());
        }

        @Override
        public void onChildRemoved(@NonNull DataSnapshot dataSnapshot) {
            Chat c = chatAdapter.removeChat(dataSnapshot.getKey());
            Log.d(TAG, "onChildRemoved\t" + c.asChat());
        }

        @Override
        public void onChildMoved(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {
            Chat c = dataSnapshot.getValue(Chat.class);
            chatAdapter.moveChat(c, dataSnapshot.getKey());
            Log.d(TAG, "onChildMoved\t" + c.asChat());
        }

        @Override
        public void onCancelled(@NonNull DatabaseError databaseError) {
            Log.d(TAG, "onCancelled\t" + databaseError.toException());
            Toast.makeText(context, "error loading chat list", Toast.LENGTH_SHORT).show();
        }
    });

我的想法是将聊天列表分成两个部分,一个是我在应用程序中显示的列表,另一个是连接到Firebase的列表,所以当我的应用程序中添加新条目时,我会将其添加到这两个列表中。但我真的不认为用完这些额外的内存是解决这个问题的办法。除此之外,有没有办法解决这个问题?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-01-12 12:19:56

如果您只想添加项,那么简单地忽略onChildRemoved如何

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54156692

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档