gpt4 book ai didi

java - com.google.firebase.database.DatabaseException : Can't convert object of type java. lang.String 输入 com.pasarkaget.fajar.pasarkaget.Model.Payments

转载 作者:太空宇宙 更新时间:2023-11-04 09:34:50 25 4
gpt4 key购买 nike

我在检索付款数据时遇到问题。它总是说我无法将对象类型转换为:

com.google.firebase.database.DatabaseException: Can't convert object of type java.lang.String to type com.pasarkaget.fajar.pasarkaget.Model.Payments

我认为这个错误来 self 的付款模式,但我不知道我的错误。有人可以帮助我吗?

这是我的 AdminUserPaymentsActivity,我必须在其中显示特定用户的付款数据。

 public class AdminUserPaymentActivity extends AppCompatActivity
{
private RecyclerView paymentsList;
RecyclerView.LayoutManager layoutManager;
private DatabaseReference paymentsRef;

private String userID = "";


@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_admin_user_payments);

userID = getIntent().getStringExtra("uid");

paymentsList = findViewById(R.id.payments_list);
paymentsList.setHasFixedSize(true);
layoutManager = new LinearLayoutManager(this);
paymentsList.setLayoutManager(layoutManager);


paymentsRef = FirebaseDatabase.getInstance().getReference()
.child("Cart List").child("Admin View").child(userID).child("Payments");
}

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

FirebaseRecyclerOptions<Payments> options =
new FirebaseRecyclerOptions.Builder<Payments>()
.setQuery(paymentsRef, Payments.class)
.build();


FirebaseRecyclerAdapter<Payments, PaymentsViewHolder> adapter = new FirebaseRecyclerAdapter<Payments, PaymentsViewHolder>(options) {
@Override
protected void onBindViewHolder(@NonNull PaymentsViewHolder holder, int position, @NonNull Payments model)
{
holder.txtMyBankName.setText(model.getBuyerBank());
holder.txtBankAccountName.setText(model.getBuyerAccount());
holder.txtBankName.setText(model.getBank());
holder.txtMetods.setText(model.getMetods());
holder.txtTotalTransfer.setText("Rp " + model.getNominal());
holder.txtState.setText(model.getState());
holder.txtDate.setText("Pada Tanggal : " + model.getDate());
}

@NonNull
@Override
public PaymentsViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType)
{
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.payments_items_layout, parent, false);
PaymentsViewHolder holder = new PaymentsViewHolder(view);
return holder;
}
};

paymentsList.setAdapter(adapter);
adapter.startListening();
}
}

我的观看者类别

          public class PaymentsViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener
{
public TextView txtBankName, txtMyBankName, txtBankAccountName, txtTotalTransfer, txtMetods, txtState, txtDate;
private ItemClickListener itemClickListener;


public PaymentsViewHolder(View itemView)
{
super(itemView);

txtBankName = itemView.findViewById(R.id.payments_bank_destination);
txtMyBankName = itemView.findViewById(R.id.payments_bank_name);
txtBankAccountName = itemView.findViewById(R.id.payments_bank_account);
txtTotalTransfer = itemView.findViewById(R.id.payments_total_transfer);
txtMetods = itemView.findViewById(R.id.payments_bank_metods);
txtState = itemView.findViewById(R.id.payments_state);
txtDate = itemView.findViewById(R.id.payments_date);

}

@Override
public void onClick(View view)
{
itemClickListener.onClick(view, getAdapterPosition(), false);
}

public void setItemClickListener(ItemClickListener itemClickListener) {
this.itemClickListener = itemClickListener;
}
}

And Lastly, My Model Payments class



public class Payments
{
private String bank, buyerBank, buyerAccount, nominal, metods, state, date, time;

public Payments()
{

}

public Payments(String bank, String buyerBank, String buyerAccount, String nominal, String metods, String state, String date, String time)
{
this.bank = bank;
this.buyerBank = buyerBank;
this.buyerAccount = buyerAccount;
this.nominal = nominal;
this.metods = metods;
this.state= state;
this.date = date;
this.time = time;
}

public String getBank() {
return bank;
}

public void setBank(String bank) {
this.bank = bank;
}

public String getBuyerBank() {
return buyerBank;
}

public void setBuyerBank(String buyerBank) {
this.buyerBank = buyerBank;
}

public String getBuyerAccount() {
return buyerAccount;
}

public void setBuyerAccount(String buyerAccount) {
this.buyerAccount = buyerAccount;
}

public String getNominal() {
return nominal;
}

public void setNominal(String nominal) {
this.nominal = nominal;
}

public String getMetods() {
return metods;
}

public void setMetods(String metods) {
this.metods = metods;
}

public String getState() {
return state;
}

public void setState(String state) {
this.state = state;
}

public String getDate() {
return date;
}

public void setDate(String date) {
this.date = date;
}

public String getTime() {
return time;
}

public void setTime(String time) {
this.time = time;
}
}

我的 Firebase 数据库结构:

my structured firebase

最佳答案

当您通过 paymentsRef 时到FirebaseRecyclerOptions<Payments>对象,这意味着您正在寻找 Payments对象,但在您的引用中,只有 String 类型的对象,没有 Payments ,这就是您收到该错误的原因。要解决此问题,只需删除对 .child("Payments") 的调用即可。 :

paymentsRef = FirebaseDatabase.getInstance().getReference()
.child("Cart List").child("Admin View").child(userID);

您将能够获得所有 Payments userID 中存在的对象节点。

关于java - com.google.firebase.database.DatabaseException : Can't convert object of type java. lang.String 输入 com.pasarkaget.fajar.pasarkaget.Model.Payments,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56637733/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com