如何解决无法将 FireBase 数据库提取到 recyclerView
我无法填充,所以我使用了 FireBaseRecycleroption 但仍然没有输出。
我有 firebase 数据库 hoe 可以将它们添加到 recyclerview。
为什么我无法在回收站视图中查看数据
我没有发现任何错误,但仍然无法获取数据库,请帮助我。
IncomeFragement.java
public class IncomeFragment extends Fragment {
//Firebase database
private FirebaseAuth mAuth;
private DatabaseReference mIncomeDatabase;
//Recycler View
private RecyclerView recyclerView;
IncomeAdapter adapter;
private static final String ARG_PARAM1 = "param1";
private static final String ARG_PARAM2 = "param2";
private String mParam1;
private String mParam2;
public static IncomeFragment newInstance(String param1,String param2) {
IncomeFragment fragment = new IncomeFragment();
Bundle args = new Bundle();
args.putString(ARG_PARAM1,param1);
args.putString(ARG_PARAM2,param2);
fragment.setArguments(args);
return fragment;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (getArguments() != null) {
mParam1 = getArguments().getString(ARG_PARAM1);
mParam2 = getArguments().getString(ARG_PARAM2);
}
}
@Override
public View onCreateView(LayoutInflater inflater,ViewGroup container,Bundle savedInstanceState) {
// Inflate the layout for this fragment
View myview = inflater.inflate(R.layout.fragment_income,container,false);
mAuth = FirebaseAuth.getInstance();
FirebaseUser mUser=mAuth.getCurrentUser();
String UID=mUser.getUid();
mIncomeDatabase= FirebaseDatabase.getInstance().getReference().child("IncomeDatabase").child(UID);
recyclerView=myview.findViewById(R.id.recycler_income);
LinearLayoutManager layoutManager=new LinearLayoutManager(getActivity());
layoutManager.setReverseLayout(true);
layoutManager.setStackFromEnd(true);
recyclerView.setHasFixedSize(true);
recyclerView.setLayoutManager(layoutManager);
FirebaseRecyclerOptions<Data> options =
new FirebaseRecyclerOptions.Builder<Data>()
.setQuery(FirebaseDatabase.getInstance().getReference().child("IncomeDatabase"),Data.class)
.build();
adapter=new IncomeAdapter(options);
recyclerView.setAdapter(adapter);
return myview;
}
@Override
public void onStart() {
super.onStart();
adapter.startListening();
}
@Override
public void onStop() {
super.onStop();
adapter.stopListening();
}
}
收入适配器
public class IncomeAdapter extends FirebaseRecyclerAdapter<Data,IncomeAdapter.myViewHolder>
{
public IncomeAdapter(@NonNull FirebaseRecyclerOptions<Data> options) {
super(options);
}
@Override
protected void onBindViewHolder(@NonNull myViewHolder holder,int position,@NonNull Data model) {
holder.type.setText(model.getType());
holder.note.setText(model.getNote());
holder.amount.setText(model.getAmount());
}
@NonNull
@Override
public myViewHolder onCreateViewHolder(@NonNull ViewGroup parent,int viewType) {
View view= LayoutInflater.from(parent.getContext()).inflate(R.layout.fragment_income,parent,false);
return new myViewHolder(view);
}
public class myViewHolder extends RecyclerView.ViewHolder
{
TextView amount,type,note;
public myViewHolder(@NonNull View itemView) {
super(itemView);
type=itemView.findViewById(R.id.type_text_income);
note=itemView.findViewById(R.id.note_text_income);
amount=itemView.findViewById(R.id.amount_text_income);
}
}
}
数据.java
public class Data {
private int amount;
private String type;
private String note;
public Data() {
}
public Data (int amount,String s,String type,String note,String id) {
this.amount = amount;
this.type = type;
this.note = note;
}
public int getAmount() {
return amount;
}
public void setAmount(int amount) {
this.amount = amount;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public String getNote() {
return note;
}
public void setNote(String note) {
this.note = note;
}
}
杰森文件
"IncomeData" : {
"GEyh5uOMkhQa0mCnp9oAG6W3qxD3" : {
"-MSk7WggCS5eNG-8UNgl" : {
"amount" : 5000,"date" : "Feb 5,2021","id" : "-MSk7WggCS5eNG-8UNgl","note" : "I got salary","type" : "Salary"
},"-MSk7uXOANF6Q9QQ4Mml" : {
"amount" : 10000,"id" : "-MSk7uXOANF6Q9QQ4Mml","note" : "Tesla stocks trade","type" : "Dividends"
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。