【问题标题】:Android - firebase get all parent object in FirebaseRecyclerAdapterAndroid - firebase 获取 FirebaseRecyclerAdapter 中的所有父对象
【发布时间】:2019-07-25 20:47:16
【问题描述】:

按照图像,我想检索用户内部将我的 getUid() 设置为 true 并在 FirebaseRecyclerAdapter 中使用的所有项目。

我正在使用 FirebaseRecyclerAdapter

我正在尝试这个,但它不起作用

    Query postsQuery = mDatabase.child("projects").child("users").orderByChild(getUid()).equalTo(true);
    mAdapter = new FirebaseRecyclerAdapter<Project, ProjectViewHolder>(Project.class, R.layout.item_project,
            ProjectViewHolder.class, postsQuery) {
        @Override
        protected void populateViewHolder(final ProjectViewHolder viewHolder, final Project model, final int position) {
            final DatabaseReference postRef = getRef(position);
            Log.d(TAG, model.name + "");
            viewHolder.bindToPost(model);

        }
    };
    mRecycler.setAdapter(mAdapter);

我认为问题在于我需要父对象(项目)而不是用户。

【问题讨论】:

    标签: android firebase firebase-realtime-database


    【解决方案1】:

    你需要使用getParent()这样的方法在树中更上一层楼:

    final DatabaseReference postRef = getRef(position).getParent();
    String name = postRef.child("name").getValue(String.class);
    

    希望对你有帮助。

    【讨论】:

    • 谢谢!!我已经解决了DatabaseReference keyRef = mDatabase.child("users").child(getUid()).child("projects"); DatabaseReference dataRef = mDatabase.child("projects"); mAdapter = new FirebaseIndexRecyclerAdapter&lt;Project, ProjectViewHolder&gt;(Project.class, R.layout.item_project, ProjectViewHolder.class, keyRef, dataRef) { @Override public void populateViewHolder(ProjectViewHolder viewHolder, Project item, int position) { Log.d(TAG, item.name + ""); } }; mRecycler.setAdapter(mAdapter);
    【解决方案2】:

    你需要使用FirebaseIndexRecyclerAdapter

    在这种情况下,您的关键引用将是另一个节点,您可以在其中设置哪些项目链接到用户。

    "user_projects": {
        "UID": {
            "project_1":true,
            "project_4":true,
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-09-10
      • 1970-01-01
      • 1970-01-01
      • 2017-03-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多