java .lang.RuntimeException: не удалось десериализовать объект. Не удалось преобразовать значение типа java .lang.Long в String - PullRequest
0 голосов
/ 28 мая 2020

Мои данные Firebase в порядке, поле «CashbackAmount» - это строка в базе данных, поэтому я получаю строку из базы данных и сохраняю ее в строке. Как можно сказать, что я получаю Long, когда данные отправляются из Firebase в виде строки?

java.lang.RuntimeException: Could not deserialize object. Failed to convert value of type java.lang.Long to String (found in field 'cashbackAmount')

Вот моя коллекция Firestore.

Это мой класс модели, который обрабатывает данные:

public class Userdata {
private String name,phoneNumber,paymentOption ;
private int code;
private String cashbackAmount;

public Userdata() {
}

public Userdata(String name, String phoneNumber, String paymentOption, int code, String cashbackAmount) {
    this.name = name;
    this.phoneNumber = phoneNumber;

    this.paymentOption = paymentOption;
    this.code = code;
    this.cashbackAmount = cashbackAmount;
}

public String getName() {
    return name;
}

public String getPhoneNumber() {
    return phoneNumber;
}



public String getPaymentOption() {
    return paymentOption;
}

public int getCode() {
    return code;
}

public String getCashbackAmount() {
    return cashbackAmount;
}
}

Это мой класс адаптера.

public class UserAdapter extends FirestoreRecyclerAdapter<Userdata, UserAdapter.Userholder> {

public UserAdapter(@NonNull FirestoreRecyclerOptions<Userdata> options) {
    super(options);
}

@Override
protected void onBindViewHolder(@NonNull Userholder holder, int position, @NonNull Userdata model) {
    holder.uusername.setText(model.getName());
    holder.umobileno.setText(model.getPhoneNumber());
    holder.upayment.setText(model.getPaymentOption());
    holder.uamount.setText(model.getCashbackAmount());
    holder.ucode.setText(String.valueOf(model.getCode()));


}

@NonNull
@Override
public Userholder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
  View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.singledata,parent,false);




    return new Userholder(view);
}




class Userholder extends RecyclerView.ViewHolder{
    TextView uusername;
    TextView umobileno;
    TextView upayment;
    TextView uamount;
    TextView ucode;

    public Userholder(@NonNull View itemView) {
        super(itemView);
        uusername=itemView.findViewById(R.id.username);
        umobileno=itemView.findViewById(R.id.Mobileno);
        upayment=itemView.findViewById(R.id.paymentoption);
        uamount=itemView.findViewById(R.id.cashamount);
        ucode=itemView.findViewById(R.id.uniqcode);


    }
}
}
...