Meu código está apresentando o seguinte erro com.google.firebase.database.DatabaseException: Can’t convert object of type java.lang.Long to type model.Usuario
fiz o Debug mas ainda não consegui achar a solução , podem me orientar por favor
Boa Noite , estou com a seguinte dificuldade na parte de atualizar os valores vindo do Banco está apresentando o seguinte erro : Can’t convert object of type java.lang.Long to type model.Usuario, não estou conseguindo entender o porque disso
Usuario.class
package model;
import com.google.firebase.database.DatabaseReference; import com.google.firebase.database.Exclude;
import config.ConfiguracaoFirebase;
public class Usuario {
private String idUsuario;
private String nome;
private String email;
private String senha;
private Double receitaTotal = 0.00;
private Double despesaTotal = 0.00;
public Usuario(String nome, String email, String senha) {
this.nome = nome;
this.email = email;
this.senha = senha;
}
public Usuario(){
}
public void salvar(){
DatabaseReference firebase = ConfiguracaoFirebase.getFirebaseDataBase();
firebase.child("usuarios")
.child(this.idUsuario)
.setValue(this);
}
public Double getReceitaTotal() {
return receitaTotal;
}
public void setReceitaTotal(Double receitaTotal) {
this.receitaTotal = receitaTotal;
}
public Double getDespesaTotal() {
return despesaTotal;
}
public void setDespesaTotal(Double despesaTotal) {
this.despesaTotal = despesaTotal;
}
@Exclude
public String getIdUsuario() {
return idUsuario;
}
public void setIdUsuario(String idUsuario) {
this.idUsuario = idUsuario;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
@Exclude
public String getSenha() {
return senha;
}
public void setSenha(String senha) {
this.senha = senha;
}
}
Meu Principal Activity
import com.google.android.material.appbar.CollapsingToolbarLayout; import com.google.firebase.auth.FirebaseAuth; import com.google.firebase.database.DataSnapshot; import com.google.firebase.database.DatabaseError; import com.google.firebase.database.DatabaseReference; import com.google.firebase.database.ValueEventListener; import com.novoandroid.organizze.R; import com.prolificinteractive.materialcalendarview.CalendarDay; import com.prolificinteractive.materialcalendarview.MaterialCalendarView; import com.prolificinteractive.materialcalendarview.OnMonthChangedListener;
import java.text.DecimalFormat;
import config.ConfiguracaoFirebase; import helper.Base64Custom; import model.Usuario;
public class PrincipalActivity extends AppCompatActivity {
private MaterialCalendarView calendarView;
private TextView textoSaudacao, textoSaldo;
private DatabaseReference firebaseRef = ConfiguracaoFirebase.getFirebaseDataBase();
private FirebaseAuth autenticacao = ConfiguracaoFirebase.getFirebaseAutenticacao();
private Double despesaTotal = 0.00 ;
private Double receitaTotal = 0.00 ;
private Double resumoUsuario = 0.00 ;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_principal);
CollapsingToolbarLayout toolbar = (CollapsingToolbarLayout) findViewById(R.id.toolbar);
calendarView = findViewById(R.id.calendarView);
textoSaudacao = findViewById(R.id.textSaldacao);
textoSaldo = findViewById(R.id.textSaldo);
//configuraCalendarView();
recuperarResumo();
/*
FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
.setAction("Action", null).show();
}
});*/
}
public void recuperarResumo() {
String emailUsuario = autenticacao.getCurrentUser().getEmail();
String idUsuario = Base64Custom.codificarBase64(emailUsuario);
DatabaseReference usuarioRef = firebaseRef.child("usuarios").child(idUsuario);
usuarioRef.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot snapshot) {
for(DataSnapshot ds : snapshot.getChildren()){
Usuario usuario = ds.getValue(Usuario.class);
despesaTotal = (Double)usuario.getDespesaTotal();
receitaTotal = (Double)usuario.getReceitaTotal();
DecimalFormat decimalFormat = new DecimalFormat("0.##");
String resultadoFormatado = decimalFormat.format(resumoUsuario);
textoSaudacao.setText("Olá" + usuario.getNome());
textoSaldo.setText(resultadoFormatado);
}
}
@Override
public void onCancelled(@NonNull DatabaseError error) {
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.action_sair:
autenticacao.signOut();
startActivity(new Intent(this, MainActivity.class));
finish();
}
return super.onOptionsItemSelected(item);
}
public void adicionarDespesa(View view) {
startActivity(new Intent(this, DespesaActivity.class));
}
public void adicionarReceita(View view) {
startActivity(new Intent(this, ReceitasActivity.class));
}
public void configuraCalendarView() {
CharSequence meses[] = {"Janeiro", "Fevereiro", "Março", "Abril", "Maio", "Junho", "Julho", "Agosto",
"Setembro", "Outubro", "Novembro", "Dezembro"};
calendarView.setTitleMonths(meses);
calendarView.setOnMonthChangedListener(new OnMonthChangedListener() {
@Override
public void onMonthChanged(MaterialCalendarView widget, CalendarDay date) {
}
});
}
}
Desde já agradeço a resposta