0

My application tries to list a POJO object but when debugging, I get the error:

Can't instantiate abstract class java.util.Calendar

Is it possible that Firebase does not work correctly with CRUDs with Calendar type variables?

The pojo class Contain:

private String idParcela;
private String nombreParcela;
private int hectareas;
private Calendar ultimoTratamienetoQuimico;
private Calendar proximoTratamientoQuimico;
private String fruta;
private String variedad;
private String nombreTratamiento;
private int diasTratarQuimicamente;

And getters,setters, builders etc.

private void listarDatos() {
        databaseReference.child("parcelas").addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                listaParcelas.clear();
                for(DataSnapshot objSnaptshot : dataSnapshot.getChildren()){
                    Parcela p = objSnaptshot.getValue(Parcela.class);
                    listaParcelas.add(p);
                    arrayAdapterParcela = new ArrayAdapter<Parcela>(listaParcelas.this, android.R.layout.simple_list_item_1,listaParcelas);
                    listvListaParcela.setAdapter(arrayAdapterParcela);
                }
            }
            @Override
            public void onCancelled(@NonNull DatabaseError error) {
            }
        });
    }
Alex Mamo
  • 130,605
  • 17
  • 163
  • 193

1 Answers1

0

Is it possible that Firebase does not work correctly with CRUDs with Calendar type variables?

The Calendar class from "java.util" package, isn't a supported data type. So there is no way in which Firebase can serialize such an object. However, if you need to work with dates, you can use Date object or a Firestore Timestamp object:

When stored in Cloud Firestore, precise only to microseconds; any additional precision is rounded down.

Please see below how you can achieve that:

ServerTimestamp is always null on Firebase Firestore

Alex Mamo
  • 130,605
  • 17
  • 163
  • 193
  • I have modified the properties of the POJOto Date, and I have added this and it works! Date LastTreatmentDate = LastTreatmentDateCalendar.getTime (); Date NextTreatmentDate = NextTreatmentDateCalendar.getTime (); – David Pereiras Conde May 14 '21 at 07:47