android - 使用 viewmodel 中 LiveData 的结果从 firebase 获取数据

标签 android firebase android-recyclerview android-architecture-components android-livedata

我想从 firebase 获取 2 个对象,并且想使用 viewmodel 在 Recyclerview 上显示组合结果。我创建了一个 View 模型,它从 firebase 获取一个对象,并根据该对象的 id 我想获取另一个对象并更新 ui。 View 模型类的一些代码

  private static final DatabaseReference POST_REF =
        FirebaseDatabase.getInstance().getReference("/Post");

private final FirebaseQueryLiveData liveData = new 
FirebaseQueryLiveData(POST_REF);
 @NonNull
public LiveData<DataSnapshot> getDataSnapshotLiveData() {

    return liveData;

}

FirebaseQueryLiveData 类

private final MyValueEventListener listener = new MyValueEventListener();


public FirebaseQueryLiveData(DatabaseReference ref) {
    this.query = ref;
}

@Override
protected void onActive() {
    Log.d(LOG_TAG, "onActive");
    query.addValueEventListener(listener);
}

@Override
protected void onInactive() {
    Log.d(LOG_TAG, "onInactive");
    query.removeEventListener(listener);
}

如何使用第一个对象的结果从 firebase 获取第二个对象并通知 livedata

第一个对象是用户的帖子,第二个对象是 userinfo 。我想在 Ui 上显示组合结果。

数据库结构我想获取帖子并根据帖子中的ID我想获取用户详细信息 enter image description here

最佳答案

我认为this tutorial中的第5步是你问题的答案。 一旦 Firebase 中的数据发生变化,您可以在此处更新 UI。

关于android - 使用 viewmodel 中 LiveData 的结果从 firebase 获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51468708/

相关文章:

java - Android - Firebase - 从节点 X 检索数据并将其发送到节点 Y

java - Appium:无法在android中的datepicker中选择按钮

android - Firebase 附加权限。是否要求用户接受

java - 带有 RecyclerView 的 CoordinatorLayout 在屏幕底部留下空白空间

android - fragment 没有膨胀

android - 如何获取应用包中Android assets文件夹的路径

ios - 使用google帐户登录后如何执行segue?

websocket - Firebase 的延迟是否足够低,可以用于实时 MMOG 而不是套接字?

android - 如果不需要滚动,是否可以将 RecyclerView 中的最后一项停靠到底部?

python - 热衷于使用 python (urllib2) 向 Firebase REST API 发出 PATCH 请求?