Firebase RecyclerView - 如何仅显示过滤数据?

乔布斯

目前,我正在回收商视图中显示我所有的“任务”,同时具有“状态”属性的“任务”模型。

我只想显示状态为“可用”的任务。

我该怎么做?我试过使用 orderByChild 和 equalTo 但可能我遗漏了一些东西。

这是相关片段的代码:-

    /**
     * A simple {@link Fragment} subclass.
     */

    public class PendingFragment_User extends Fragment {
    private String TAG = "dDEBUG";
    private RecyclerView mPendingList;

    private DatabaseReference mMissionsDb;
    private FirebaseAuth mAuth;

    private String mCurrent_user_id;

    private View mMainView;


    public PendingFragment_User() {
        // Required empty public constructor
    }


    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        mMainView = inflater.inflate(R.layout.fragment_pending_user, container, false);

        mPendingList = (RecyclerView)mMainView.findViewById(R.id.pending_recycler_user);
        mAuth = FirebaseAuth.getInstance();

        mCurrent_user_id = mAuth.getCurrentUser().getUid();

        mMissionsDb = FirebaseDatabase.getInstance().getReference().child("Missions").child(mCurrent_user_id);
//        mMissionsDb.keepSynced(true);

        mPendingList.setHasFixedSize(true);
        mPendingList.setLayoutManager(new LinearLayoutManager(getContext()));


        // Inflate the layout for this fragment
        return mMainView;
    }

    @Override
    public void onStart() {
        super.onStart();

        FirebaseRecyclerAdapter<Mission, MissionsViewHolder> firebaseMissionsUserRecyclerAdapter = new FirebaseRecyclerAdapter<Mission, MissionsViewHolder>(
                Mission.class,
                R.layout.missions_single_layout,
                MissionsViewHolder.class,
                mMissionsDb
        ) {
            @Override
            protected void populateViewHolder(MissionsViewHolder missionViewHolder, Mission missionModel, int missionPosition) {
//                Log.d(TAG, "inside populateViewHolder" + missionModel.getName() + " , " + missionModel.getDescription());
                missionViewHolder.setMissionName(missionModel.getName());
                missionViewHolder.setMissionStatus(missionModel.getStatus());
            }
        };

        mPendingList.setAdapter(firebaseMissionsUserRecyclerAdapter);
    }

    public static class MissionsViewHolder extends RecyclerView.ViewHolder {

        View mView;

        public MissionsViewHolder(View itemView) {
            super(itemView);
            mView = itemView;

        }

        public void setMissionName(String name){
            TextView mMissionNameView = mView.findViewById(R.id.mission_single_name);
            mMissionNameView.setText(name);
        }

        public void setMissionStatus(String status){
            TextView mMissionStatusView = mView.findViewById(R.id.mission_single_status);
            mMissionStatusView.setText(status);
        }
    }
}

任务模型字段:

public class Mission {
private String username;
private String user_uid;
private String name;
private String description;
private String x;
private String y;
private String status;
}

数据库截图:同一个用户有3个任务。每个任务都有唯一的 uuid。两个是“可用”(我想显示的)和 1 个被占用(我不想显示)。D b

彼得·哈达德

试试这个:

mMissionsDb = FirebaseDatabase.getInstance().getReference().child("Missions").child(mCurrent_user_id);
Query queries=mMissionsDb.orderByChild("status").equalTo("Available");

因为你有:

   Missions
       userid
          randomid
              key:values
              status:Available <------------------- this will be in the result of the query
           randomid
              key:values
              status:Taken
           randomid
             key:values
             status:Available <---------------------------- also this

没有其他方法能够获得等于的所有状态 Available

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何从 Firebase 数据库过滤数据并将其显示到 android recyclerview 中?

Firebase Recyclerview不显示数据

Recyclerview 未显示 Firebase 数据

在Recyclerview中显示来自Firebase的数据,并按用户名过滤-如何?

如何在Recyclerview中显示Firebase数据而不重复

无法在RecyclerView中显示来自Firebase的数据

Android Studio RecyclerView Firebase未显示数据

Firebase数据未显示在我的RecyclerView上

Firebase中的数据未在RecyclerView中显示

来自Firebase的数据未显示在RecyclerView上

Firebase RecyclerView UI 未显示

Recyclerview 不从 firebase 检索数据

RecyclerView仅显示Firebase中的一项

Firebase-RecyclerView仅显示一次图像

如何从 firebase 数据库中仅删除我的 recyclerview - andorid - java 中的选定项目

如何从Firebase在RecyclerView中添加搜索过滤器

尝试在Recyclerview中显示用户信息-Firebase

在显示Firebase查询的RecyclerView的开头插入对象

在RecyclerView中显示Firebase存储映像

使用 firebase 对 recyclerview 进行排序和显示

图像未显示在 firebase RecyclerView 中

无法在RecyclerView中显示从Firebase检索到的数据

使用KOTLIN将数据从Firebase Firestore显示到RecyclerView

来自Firebase的数据未显示在片段中的RecyclerView中

无法在 RecyclerView 中显示来自 firebase 的特定数据

在 RecyclerView 中未从 Firebase 获取数据

从Firebase数据库填充RecyclerView

RecyclerView不会从Firebase Datasnapshot检索数据

Firebase的RecyclerView部分和数据