Firebase特定数据

时间:2017-03-03 18:10:49

标签: android firebase firebase-realtime-database

我是firebase的新手,并且正在尝试根据电子邮件ID向回收者视图显示数据,但是回收者视图显示了它的行。这是我的onCreate方法。

 mDatabase= FirebaseDatabase.getInstance().getReference().child("user_project_status");
    //mDatabase.child(email);
    mDatabase.keepSynced(true);
    projects_token=(RecyclerView)findViewById(R.id.selected_projects);

    projects_token.setHasFixedSize(true);
    LinearLayoutManager linearLayoutManager=new LinearLayoutManager(this);
    linearLayoutManager.setReverseLayout(true);
    linearLayoutManager.setStackFromEnd(true);
    projects_token.setLayoutManager(linearLayoutManager);
    FirebaseRecyclerAdapter<Status_getter,StatusViewHolder> firebaseRecyclerAdapter=new FirebaseRecyclerAdapter<Status_getter, StatusViewHolder>(Status_getter.class,R.layout.status_row,StatusViewHolder.class,mDatabase) {

        @Override
        protected void populateViewHolder(StatusViewHolder viewHolder, Status_getter model, int position) {
            final String post_key=getRef(position).getKey();
            if(model.getEmail().equals(email)) {
                viewHolder.setProject_name(model.getProject_name());
                viewHolder.setToken_no(model.getToken_no());

            }

            viewHolder.mView.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {

                    Intent i=new Intent(Status.this,Selected_Status.class);
                    i.putExtra("status_id",post_key);
                    startActivity(i);
                }
            });
        }

    };


    projects_token.setAdapter(firebaseRecyclerAdapter);

这是我的status_getter类,通过它我可以设置我的数据。用名称模型调用它

 String token_no,email,progress_dialog,progress_message,project_name,project_description,software_type;

    public String getToken_no() {
        return token_no;
    }


    public String getProject_name() {
        return project_name;
    }


    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

我创建了一个xml行,即&#34; Status_row&#34;这使得自定义Recyclerview。

存储在我的数据库中的值是这样的。 如果我添加datasnapshot,我应该有一个数据键值。请添加一些示例代码和答案,因为我只是一个初学者 1

1 个答案:

答案 0 :(得分:0)

我认为你应该只传递mDatabase而不是mDatabase.equalTo("email",email)作为FirebaseRecyclerAdapter匿名类构造函数的第四个参数。

OR

如果要获取email节点下的数据,则可以将mDatabase.child("email")作为FirebaseRecyclerAdapter匿名类构造函数的第4个参数传递。

EG:

    FirebaseRecyclerAdapter<Status_getter,StatusViewHolder> firebaseRecyclerAdapter=new FirebaseRecyclerAdapter<Status_getter, StatusViewHolder>(Status_getter.class,R.layout.status_row,StatusViewHolder.class,mDatabase.child("email")) {
...