How do I view a Firebase database drive?

Asked

Viewed 86 times

0

I am having trouble recovering the drive content that is stored in Firebase, which has in turn user dHJldml6YW5AZ21haWwuY29t and email, and inside the email is organized by date of movement, for example 122018, so I’d like to list this movement. I’ve already set up the calendar, only nothing in my Movimentacao.class, which is where it should appear.

Meu Firebase

I did so:

private FirebaseAuth autenticacao = ConfiguracaoFirebase.getFirebaseAutenticacao();
private DatabaseReference firebaseRef = ConfiguracaoFirebase.getFirebaseDatabase();
private DatabaseReference usuarioRef;
private ValueEventListener valueEventListenerUsuario;
private ValueEventListener valueEventListenerMovimentacoes;

private RecyclerView recyclerView;
private AdapterMovimentacao adapterMovimentacao;
private List<Movimentacao> movimentacoes = new ArrayList<>();
private DatabaseReference movimentacaoRef;
private String mesAnoSelecionado;

Method to recover drives, which did not work!

//Recuperar Moviventações
public void recuperarMovimentacoes(){

    String emailUsuario = autenticacao.getCurrentUser().getEmail();  //recupera o email do usuário logado da base de dados do Firebase
    String idUsuario = Base64Custom.codificarBase64(emailUsuario);  //recupera o email do usuário por meio da Base64 codificando-o

    movimentacaoRef = 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 on Movimentacao.class.

What’s going wrong? The Log Log.i("dadosRetorno", "dados: " + movimentacao.getCategoria()); shows nothing!

1 answer

0

Note that the tree has an "email" node between "dHJldml6YW5AZ21haWwuY29t" and "122018"

When saving yourself you can take this node when seeking to include as in the example below

startRef = firebaseRef . Child("movement") . Child(idUsuario) . Child("email") . Child(same academic year);

Browser other questions tagged

You are not signed in. Login or sign up in order to post.