Код, который я покажу далее, я использовал его всегда, и теперь появляется эта ошибка:
com.google.firebase.database.DatabaseException: Can't convert object of type java.lang.String to type com.aplicacion.vivaluganoapp.ar.Model.UserPedido
com.aplicacion.vivaluganoapp.ar.Model.UserPedido это класс Java
Код:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_comprobar_pedido);
currentUserID = Prevalent.currentOnlineUser.getTelefono();
ordersList = findViewById(R.id.pedidorecycler);
ordersList.setLayoutManager(new LinearLayoutManager(this));
}
@Override
protected void onStart() {
super.onStart();
ordersRef = FirebaseDatabase.getInstance().getReference().child("Usuarios").child(currentUserID).child("Pedidos");
FirebaseRecyclerOptions<UserPedido> options =
new FirebaseRecyclerOptions.Builder<UserPedido>()
.setQuery(ordersRef, UserPedido.class)
.build();
FirebaseRecyclerAdapter<UserPedido, UserProductViewHolder> adapter =
new FirebaseRecyclerAdapter<UserPedido, UserProductViewHolder>(options) {
@Override
protected void onBindViewHolder(@NonNull UserProductViewHolder holder, final int position, @NonNull UserPedido model) {
holder.userName.setText("Nombre: " + model.getNombre());
holder.userPhoneNumber.setText("Numero de Telefono: " + model.getTelefono());
holder.userTotalPrice.setText("Monto Total: " + model.getMontoTotal() + " ARS");
holder.userDateTime.setText("Orden: " + model.getTiempo() + " " + model.getHora());
holder.userShippingAddress.setText("Direccion de Envio o Retiro: " + model.getDireccion() + ", " + model.getCiudad());
holder.userBirthday.setText("Cumpleaños:" + model.getCumpleaños());
holder.userInfoExtra.setText("Informacion Extra: " + model.getInformacionExtra());
holder.ShowOrdersBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String uID = getRef(position).getKey();
Intent intent = new Intent(comprobarPedidoActivity.this, adminUserProductsActivity.class);
intent.putExtra("uid", uID);
startActivity(intent);
}
});
holder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
CharSequence options[] = new CharSequence[]
{
"Si",
"No"
};
AlertDialog.Builder builder = new AlertDialog.Builder(comprobarPedidoActivity.this);
builder.setTitle("Pedido");
builder.setItems(options, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int i) {
if(i == 0)
{
String uID = getRef(position).getKey();
RemoverPedido(uID);
}
if(i == 1)
{
finish();
}
}
});
builder.show();
}
});
}
@NonNull
@Override
public UserProductViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
View view = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.pedidos_layout, viewGroup, false);
return new UserProductViewHolder(view);
}
};
ordersList.setAdapter(adapter);
adapter.startListening();
}
public static class UserProductViewHolder extends RecyclerView.ViewHolder
{
public TextView userName, userPhoneNumber, userTotalPrice, userDateTime, userShippingAddress, userBirthday, userInfoExtra;
public Button ShowOrdersBtn;
public UserProductViewHolder(View itemView){
super(itemView);
userName = itemView.findViewById(R.id.pedido_nombre_usuario);
userPhoneNumber = itemView.findViewById(R.id.pedido_telefono_usuario);
userTotalPrice = itemView.findViewById(R.id.pedido_precio_total);
userDateTime = itemView.findViewById(R.id.pedido_tiempo_hora);
userShippingAddress = itemView.findViewById(R.id.pedido_direccion_city);
ShowOrdersBtn = itemView.findViewById(R.id.mostrar_todos_productos_btn);
userBirthday = itemView.findViewById(R.id.pedido_cumpleaños);
userInfoExtra = itemView.findViewById(R.id.pedido_info_extra);
}
}
ошибка находится здесь:
ordersRef = FirebaseDatabase.getInstance().getReference().child("Usuarios").child(currentUserID).child("Pedidos");
Каждый раз, когда я помещаю String currentUserID (который является ссылкой на его идентификатор пользователя в базе данных), я вижу ошибку, упомянутую выше.
Это странно, потому что я всегда использую один и тот же код для выполнения этой операции, и я ничего не изменил, кроме добавления currentUserID (который я добавил в другие классы Java и
работал отлично).
Почему этот код не работает для меня сейчас и как его можно решить?