List returning null values

Asked

Viewed 62 times

0

I am doing an item listing, in this listing I bring the following information id, idPostagem, description, nounUsuario and photoUsuario.

Soon after setting the values, I checked them and I am all displaying correctly, but when I try to display it shows as null the following fields id, idPostagem, description and photoUsuario.

Someone knows where I might be missing and why when I test through the Toast, just after setting the values, they are correct and when I pull with get them appear as null?

Set of values:

final ItemSalvo itemSalvo = new ItemSalvo();
itemSalvo.setId(feed.getId());
itemSalvo.setDescricao(feed.getDescricao());
itemSalvo.setFotoPostagem(feed.getFotoPostagem());
itemSalvo.setFotoUsuario(feed.getFotoUsuario());
itemSalvo.setNomeUsuario(feed.getNomeUsuario());

Log.i("Teste get: ", "Descrição - " + itemSalvo.getDescricao());
Log.i("Teste get: ", "Foto postagem - " + itemSalvo.getFotoPostagem());
Log.i("Teste get: ", "Foto usuario - " + itemSalvo.getFotoUsuario());
Log.i("Teste get: ", "Id - " + itemSalvo.getId());
Log.i("Teste get: ", "Nome - " + itemSalvo.getNomeUsuario());

Result of Log when I set the values: Log output when I am setting the values

I/Test set:: Descrição - teste da descrição
I/Test set:: Foto postagem - https://firebasestorage.googleapis.com/v0/b/tecmaf-59ebf.appspot.com/o/imagens%2Fpostagens%2F-LQYYTzgsU--x9Pj6vle.jpeg?alt=media&token=21c779fd-b0cf-4a41-b2c4-3db06b82a868 
I/Test set:: Foto usuario - https://firebasestorage.googleapis.com/v0/b/tecmaf-59ebf.appspot.com/o/imagens%2Fperfil%2FdXN1YXJpb0B0ZWNtYWYuY29tLmJy.jpeg?alt=media&token=fd144b1c-7509-4b2a-ba11-bb3f912c6ce7
I/Test set:: Id - -LQYYTzgsU--x9Pj6vle
I/Test set:: Nome - USUARIO

when I test the same values in the recover apps Adapter:

I/Test get:: Descrição - null
I/Test get:: Foto postagem - null
I/Test get:: Foto usuario - null
I/Test get:: Id - null
I/Test get:: Nome - USUARIO

Firebase structure:

inserir a descrição da imagem aqui

Activity:

public class ItensSalvosActivity extends AppCompatActivity {

    private Toolbar toolbar;
    private RecyclerView recyclerItensSalvos;
    private ItensSalvosAdapter itensSalvosAdapter;
    private List<ItemSalvo> listaItemSalvo = new ArrayList<>();
    private ValueEventListener valueEventListenerItensSalvos;
    private DatabaseReference itensSalvosRef;
    private String idUsuarioLogado;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_itens_salvos);

        idUsuarioLogado = Base64Custom.codificarBase64(UsuarioFirebase.getIdentificadorUsuario());

        itensSalvosRef = ConfiguracaoFirebase.getFirebase().child("itens-salvos").child(idUsuarioLogado);

        toolbar = (Toolbar) findViewById(R.id.tb_itens);
        toolbar.setTitle("Itens salvos");
        setSupportActionBar(toolbar);

        getSupportActionBar().setDisplayHomeAsUpEnabled(true);

        recyclerItensSalvos = findViewById(R.id.recyclerItensSalvos);

        itensSalvosAdapter = new ItensSalvosAdapter(listaItemSalvo, ItensSalvosActivity.this);
        recyclerItensSalvos.setHasFixedSize(true);
        recyclerItensSalvos.setLayoutManager(new LinearLayoutManager(ItensSalvosActivity.this));
        recyclerItensSalvos.setAdapter(itensSalvosAdapter);

    }

    private void listarItensSalvos() {

        valueEventListenerItensSalvos = itensSalvosRef.addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {

                listaItemSalvo.clear();

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

                    listaItemSalvo.add(ds.getValue(ItemSalvo.class));

                }

                Collections.reverse(listaItemSalvo);
                itensSalvosAdapter.notifyDataSetChanged();

            }

            @Override
            public void onCancelled(DatabaseError databaseError) {

            }
        });

    }

    @Override
    protected void onStart() {
        super.onStart();
        listarItensSalvos();
    }

    @Override
    protected void onStop() {
        super.onStop();
        itensSalvosRef.removeEventListener(valueEventListenerItensSalvos);
    }
}

Adapter:

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

    private List<ItemSalvo> listaItemSalvo;
    private Context context;

    public ItensSalvosAdapter(List<ItemSalvo> listaItemSalvo, Context context) {
        this.listaItemSalvo = listaItemSalvo;
        this.context = context;
    }


    @NonNull
    @Override
    public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {

        View itemLista = LayoutInflater.from(parent.getContext()).inflate(R.layout.lista_itens_salvos, parent, false);
        return new ItensSalvosAdapter.MyViewHolder(itemLista);

    }

    @Override
    public void onBindViewHolder(@NonNull final ItensSalvosAdapter.MyViewHolder holder, int position) {

        //Dando null - Descricao, FotoPerfil, FotoPostagem,
        //recupera ItemSalvo atual pela posicao
        final ItemSalvo itemSalvo = listaItemSalvo.get(position);
        final Usuario usuarioLogado = UsuarioFirebase.getDadosUsuarioLogado();

          //Fazer verificacão de caso n tenha foto, aparecer drawable avatar
        if (itemSalvo.getFotoUsuario().isEmpty()) {

            //setar a imagem avatar como subistituta
            holder.imageFotoPerfilItensSalvos.setImageResource(R.drawable.avatar);

        } else {

            Uri uriFotoUsuario = Uri.parse(itemSalvo.getFotoUsuario());
            Glide.with(context).load(uriFotoUsuario).into(holder.imageFotoPerfilItensSalvos);

        }

        holder.textNomeItensSalvos.setText(itemSalvo.getNomeUsuario());

          //Fazer a verificacao de caso n tenha descricao, aparecer o texto programado
        if (itemSalvo.getDescricao().isEmpty()){

            holder.textDescricaoItensSalvos.setText("Publicação de " + itemSalvo.getNomeUsuario() + " salva!");

        }else {

            holder.textDescricaoItensSalvos.setText(itemSalvo.getDescricao());

        }

        Uri uriFotoPostagem = Uri.parse(itemSalvo.getFotoPostagem());
        Glide.with(context).load(uriFotoPostagem).into(holder.imageViewFotoPostagem);

    }

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

    public class MyViewHolder extends RecyclerView.ViewHolder {

        ImageView imageViewFotoPostagem;
        CircleImageView imageFotoPerfilItensSalvos;
        TextView textNomeItensSalvos, textDescricaoItensSalvos;

        public MyViewHolder(View itemView) {

            super(itemView);

                imageViewFotoPostagem = itemView.findViewById(R.id.imageViewFotoPostagem);
                imageFotoPerfilItensSalvos = itemView.findViewById(R.id.imageFotoPerfilItensSalvos);
                textNomeItensSalvos = itemView.findViewById(R.id.textNomeItensSalvos);
                textDescricaoItensSalvos = itemView.findViewById(R.id.textDescricaoItensSalvos);
        }

    }
}

Model:

    public class ItemSalvo {

    private String id;
    private String fotoPostagem;
    private String descricao;
    private String nomeUsuario;
    private String fotoUsuario;

    public ItemSalvo() {
    }

    public String getFotoPostagem() {
        return fotoPostagem;
    }

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public void setFotoPostagem(String fotoPostagem) {
        this.fotoPostagem = fotoPostagem;
    }

    public String getDescricao() {
        return descricao;
    }

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

    }

    public String getNomeUsuario() {

        return nomeUsuario;

    }

    public void setNomeUsuario(String nomeUsuario) {
        this.nomeUsuario = nomeUsuario;
    }

    public String getFotoUsuario() {
        return fotoUsuario;
    }

    public void setFotoUsuario(String fotoUsuario) {
        this.fotoUsuario = fotoUsuario;
    }

}

1 answer

1


Look at Luis Felipe,

it shows as null the following fields id, idPostagem, description and photoUsuario, because in the structure of Firebase they are with different names. When you try to fetch the reference, the fields are not found as you wish, so it is returning null.

Browser other questions tagged

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