How do I display a Firebase database move?

0

I'm having trouble retrieving the content of the move that is stored in Firebase, which has the user dHJldml6YW5AZ21haWwuY29t and email, and within the email is organized by date of the move, for example 122018 I would like to list this movement. I already configured the calendar, but nothing appears in my Movimentacao.class , which is where it should appear.

Ididso:

privateFirebaseAuthautenticacao=ConfiguracaoFirebase.getFirebaseAutenticacao();privateDatabaseReferencefirebaseRef=ConfiguracaoFirebase.getFirebaseDatabase();privateDatabaseReferenceusuarioRef;privateValueEventListenervalueEventListenerUsuario;privateValueEventListenervalueEventListenerMovimentacoes;privateRecyclerViewrecyclerView;privateAdapterMovimentacaoadapterMovimentacao;privateList<Movimentacao>movimentacoes=newArrayList<>();privateDatabaseReferencemovimentacaoRef;privateStringmesAnoSelecionado;

Methodtorecoverdrives,whichdidnotwork!

//RecuperarMoviventaçõespublicvoidrecuperarMovimentacoes(){StringemailUsuario=autenticacao.getCurrentUser().getEmail();//recuperaoemaildousuáriologadodabasededadosdoFirebaseStringidUsuario=Base64Custom.codificarBase64(emailUsuario);//recuperaoemaildousuáriopormeiodaBase64codificando-omovimentacaoRef=firebaseRef.child("movimentacao")
            .child(idUsuario)
            .child(mesAnoSelecionado);


    valueEventListenerMovimentacoes = movimentacaoRef.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(@NonNull DataSnapshot dataSnapshot) {

            movimentacoes.clear();

            for (DataSnapshot dados: dataSnapshot.getChildren()){

                Movimentacao movimentacao = dados.getValue(Movimentacao.class);

                Log.i("dadosRetorno", "dados: " + movimentacao.getCategoria());
                movimentacoes.add(movimentacao);

            }
            adapterMovimentacao.notifyDataSetChanged();

        }

        @Override
        public void onCancelled(@NonNull DatabaseError databaseError) {

        }
    });
}

This is my code Movimentacao.java :

import com.google.firebase.auth.FirebaseAuth;
import com.google.firebase.database.DatabaseReference;

import br.com.software.trevizan.organizesuascontas.config.ConfiguracaoFirebase;
import br.com.software.trevizan.organizesuascontas.helper.Base64Custom;
import br.com.software.trevizan.organizesuascontas.helper.DateCustom;

public class Movimentacao {

    private String data;
    private String categoria;
    private String descricao;
    private String tipo;
    private Double valor;

    public Movimentacao() {
    }

    public void salvar(String dataEscolhida){

        //Recupera o email do usuário e codifica para base64
        FirebaseAuth autenticacao = ConfiguracaoFirebase.getFirebaseAutenticacao();
        String idUsuario = Base64Custom.codificarBase64(autenticacao.getCurrentUser().getEmail());

        //Recupera a data, isto é, o mês e o ano que foi configurado dentro do DateCustom.java na forma que foi configurado lá
        String mesAno = DateCustom.mesAnoDataEscolhida(dataEscolhida);

        DatabaseReference firebase = ConfiguracaoFirebase.getFirebaseDatabase();
        firebase.child("movimentacao")
                .child(idUsuario)
                .child("email")
                .child(mesAno)
                .push() //cria o Id único do firebase na base de dados
                .setValue(this);
    }

    public String getData() {
        return data;
    }

    public void setData(String data) {
        this.data = data;
    }

    public String getCategoria() {
        return categoria;
    }

    public void setCategoria(String categoria) {
        this.categoria = categoria;
    }

    public String getDescricao() {
        return descricao;
    }

    public void setDescricao(String descricao) {
        this.descricao = descricao;
    }

    public String getTipo() {
        return tipo;
    }

    public void setTipo(String tipo) {
        this.tipo = tipo;
    }

    public Double getValor() {
        return valor;
    }

    public void setValor(Double valor) {
        this.valor = valor;
    }
}

This is my AdapterMovimentacao.java :

public class AdapterMovimentacao extends RecyclerView.Adapter<AdapterMovimentacao.MyViewHolder> {

List<Movimentacao> movimentacoes;
Context context;

public AdapterMovimentacao(List<Movimentacao> movimentacoes, Context context) {
    this.movimentacoes = movimentacoes;
    this.context = context;
}

@Override
public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
    View itemLista = LayoutInflater.from(parent.getContext()).inflate(R.layout.adapter_movimentacao, parent, false);
    return new MyViewHolder(itemLista);
}


@Override
public void onBindViewHolder(MyViewHolder holder, int position) {
    Movimentacao movimentacao = movimentacoes.get(position);

    holder.titulo.setText(movimentacao.getDescricao());
    holder.valor.setText(String.valueOf(movimentacao.getValor()));
    holder.categoria.setText(movimentacao.getCategoria());

    if (movimentacao.getTipo().equals("d")) {
        holder.valor.setTextColor(context.getResources().getColor(R.color.colorAccent));
        holder.valor.setText("-" + movimentacao.getValor());
    }
}


@Override
public int getItemCount() {
    return movimentacoes.size();
}

public class MyViewHolder extends RecyclerView.ViewHolder {

    TextView titulo, valor, categoria;

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

        titulo = itemView.findViewById(R.id.textAdapterTitulo);
        valor = itemView.findViewById(R.id.textAdapterValor);
        categoria = itemView.findViewById(R.id.textAdapterCategoria);
    }

}

}

This will all be displayed in Movimentacao.class .

What is giving error? Log Log.i("dadosRetorno", "dados: " + movimentacao.getCategoria()); shows nothing!

    
asked by anonymous 19.12.2018 / 16:07

0 answers