List returning null values

0

I'm doing an item listing, in that listing I bring the following information id, idPost, description, userName and photoUser.

After setting the values, I checked them and I'm all displaying correctly, but when I try to display it it shows as null the following fields id, idPost, description and photoUsername.

Someone knows where I can be going wrong and why when I test through toast, right after setting the values, they are correct and when I pull with get they appear as null?

Setting 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 result when I'm setting 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 adapter apps retrieve:

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:

Activity:

publicclassItensSalvosActivityextendsAppCompatActivity{privateToolbartoolbar;privateRecyclerViewrecyclerItensSalvos;privateItensSalvosAdapteritensSalvosAdapter;privateList<ItemSalvo>listaItemSalvo=newArrayList<>();privateValueEventListenervalueEventListenerItensSalvos;privateDatabaseReferenceitensSalvosRef;privateStringidUsuarioLogado;@OverrideprotectedvoidonCreate(BundlesavedInstanceState){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;
    }

}
    
asked by anonymous 06.11.2018 / 17:50

1 answer

1

Look at Luis Felipe,

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

    
20.11.2018 / 16:58