Android Firebase 嵌套查询

标签 android listview firebase firebase-realtime-database firebaseui

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

Database Structure

这是我查询时得到的:

{-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/

相关文章:

android - 我正在尝试获取对我的 Firebase 数据库子项的正确引用并在我的 RecyclerView 中设置值,但我遇到了一些问题

javascript - 无法解析来自 React Firebase 对象的数据

android - CameraX 是否支持使用 Kotlin 录制视频?

android - 在不重新创建 Activity 的情况下更改 Activity 的主题

java - 我收到 Auth Error : Authentication failure due to [java. io.FileNotFoundException: while implementation pusher-js in Android studio

Android 在过滤 ListView 时未选中复选框

android - Flutter - 使用正则表达式验证电话号码

android - 在 ListView 上回收位图会导致问题

android - 在没有自定义数组适配器的情况下提供 ListView 项目标签

android - Firebase 查询从几个 child 那里检索数据并做数学运算