我正在使用 FirebaseListAdapter 并尝试从我的 Firebase 数据库中获取打开的聊天室列表,结构非常简单:
这是我查询时得到的:
{-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("聊天/KY99IS2mLzayD4HDyd6");
如果您现在调用 mDatabase
,您将得到 {location={...}, posts={....} , title="chatname"}
。
我已经解决了我的问题。但不适用于 FirebaseListAdapter。制作您自己的 ListView 和适配器,这可能更灵活。
关于Android Firebase 嵌套查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40960982/