我是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
答案 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")) {
...