【问题标题】:Android FirebaseRecyclerAdapter for List of Objects用于对象列表的 Android FirebaseRecyclerAdapter
【发布时间】:2017-08-08 11:49:48
【问题描述】:

我的firebase数据结构是

{
"users": {
    "u1": [{
        "k1": "",
        "k2": "",
        "k3": ""
    }, {
        "k1": "",
        "k2": "",
        "k3": ""
    }],
    "u2": [{
        "k1": "",
        "k2": "",
        "k3": ""
    }, {
        "k1": "",
        "k2": "",
        "k3": ""
    }],
    "u3": [{
        "k1": "",
        "k2": "",
        "k3": ""
    }, {
        "k1": "",
        "k2": "",
        "k3": ""
    }]
}
}

我想收集所有 key 的值,其中 key (u1,u2,u3) 将在运行时计算并且可以大于 1。 然后我使用 FirebaseRecycleAdapter 来显示这些数据。

mFirebaseDatabaseReference1 = mFirebaseDatabase.getReference().child("test/users");
firebaseRecyclerAdapter = new FirebaseRecyclerAdapter<FirebaseHeadlinesFeed, NewsHolder>(FirebaseHeadlinesFeed.class,
            R.layout.newslayout,
            NewsHolder.class,
            mFirebaseDatabaseReference1) {


        @Override
        protected void populateViewHolder(NewsHolder viewHolder, FirebaseHeadlinesFeed model, int position) {
            viewHolder.setNewsHolderFiled(model.getValues().get(0));

        }

有人可以帮忙吗?

【问题讨论】:

  • NewsHolder 看起来像什么?您似乎有一个用户列表,而不是新闻...R.layout.newslayout 布局?这里的确切问题是什么?
  • @cricket_007 Json 数据结构仅用于表示目的。我的问题基本上是我想过滤 users/u1 和 users/u2 的所有数据并显示在 FirebaseRecyclerView
  • FirebaseRecyclerView的默认实现是加载所有元素
  • @cricket_007 对。那么有没有办法在从 firebase 加载时处理它?
  • 根据我的经验,您需要实现自己的 RecyclerView,并过滤来自 Firebase 回调的结果以相应地添加到适配器中

标签: android firebase firebase-realtime-database firebaseui


【解决方案1】:

如果你想得到所有的孩子(用户),你需要改变这个

.child("测试/用户"); //.child("users")**;

并且您的对象 FirebaseHeadlinesFeed.class 需要与检索数据的所有属性完全相同的数据库。

您也可以创建查询以在此 mFirebaseDatabaseReference1

中使用

示例: var query = mFirebaseDatabaseReference1.orderByChild("k1");

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-04-15
    • 1970-01-01
    • 2023-04-09
    • 1970-01-01
    • 1970-01-01
    • 2019-02-12
    • 2017-09-28
    相关资源
    最近更新 更多