我正在使用FirebaseListAdapter并尝试从Firebase数据库获取打开的聊天室列表,其结构非常简单:

android - Android Firebase嵌套查询-LMLPHP

这是我查询时得到的:

{-KY99IS2mLzayD4HDyd6={location={...}, posts={....} , title="chatname"}


我想要实现的是获取没有ID部分的数据,因此它适合我的对象生成器,如下所示:

{location={...}, posts={....} , title="chatname"}


我知道ChildEventListener可以做到这一点,但是我没有选择将其与FirebaseListAdapter一起使用,所以我希望有另一种方法可以做到这一点。

我的代码是:

FirebaseListAdapter<ChatRoom> firebaseListAdapter = new FirebaseListAdapter<ChatRoom>(this,ChatRoom.class,R.layout.chatslist_row,myRef3) {
        @Override
        protected void populateView(View v, ChatRoom chatRoom, int position) {
            System.out.println(chatRoom.title);
        }

    };


但是由于关键部分而无法使用,它不能使用我的ChatRoom类对象生成器。

谢谢!

最佳答案

您可以首先从子事件侦听器获取ID(KY99IS2mLzayD4HDyd6)。
然后使用ID(KY99IS2mLzayD4HDyd6)进行新的数据库引用,并再次调用子事件侦听器。
mDatabase = databaseRef.getReference("chats/KY99IS2mLzayD4HDyd6");
如果您现在拨打mDatabase,您将得到{location={...}, posts={....} , title="chatname"}

我已经解决了这样的问题。但不适用于FirebaseListAdapter。制作自己的列表视图和适配器可能会更灵活。

关于android - Android Firebase嵌套查询,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40960982/

10-10 20:26