Получение конкретных данных из Firebase в Android Studio в представлении rcecycler - PullRequest
0 голосов
/ 02 августа 2020

Я хочу показать только некоторые данные в представлении ресайклера. У меня есть один узел Publicacoes> ...> titulo, name, imagem_titulo, visualizacoes, data, context. Но в представлении переработчика я хочу отображать только сообщения с одинаковыми именами, например nome = "John Doe", только сообщения Джона. Как я могу это сделать?

Вот как я показываю все сообщения

private void carregarPublicacoes(){

        //Definindo o 'Recycler View'
        recyclerView = findViewById( R.id.recyclerContribuicoes );
        recyclerView.setHasFixedSize( true );

        layoutDeCarregamento = new LinearLayoutManager( getApplicationContext() );
        layoutDeCarregamento.setReverseLayout( true );
        layoutDeCarregamento.setStackFromEnd( true );

        //Definindo o 'Layout'
        recyclerView.setLayoutManager( layoutDeCarregamento );

        firebaseDatabase = FirebaseDatabase.getInstance();

        //Pegando os dados da tabela de referência
        mRef = firebaseDatabase.getReference( "Publicacoes" );

        FirebaseRecyclerAdapter<Noticias, dados_noticias> firebaseRecyclerAdapter =
                new FirebaseRecyclerAdapter<Noticias, dados_noticias>(
                        Noticias.class,
                        R.layout.card_noticias,
                        dados_noticias.class,
                        mRef
                ) {
                    @Override
                    //Método para fazer o preenchimento dos dados na 'Recycler View'
                    protected void populateViewHolder(dados_noticias viewHolder, Noticias noticias, int i) {

                        viewHolder.setDetails( getApplicationContext(), noticias.getTitulo(), noticias.getImagem_titulo(), noticias.getVisualizacoes(), noticias.getData(), noticias.getConteudo() );
                    }

                    @Override
                    public dados_noticias onCreateViewHolder(final ViewGroup parent, int viewType) {
                        final dados_noticias viewHolder = super.onCreateViewHolder( parent, viewType );
                        viewHolder.setOnClickListener( new dados_noticias.ClickListener() {
                            @Override
                            public void onItemClick(View view, int position) {
                                String chave = getRef(position).getKey();

                                Intent intent = new Intent( getApplicationContext(), Activity_das_noticias.class );
                                intent.putExtra( "chave", chave );
                                startActivity( intent );

                            }

                            @Override
                            public void onItemLongClick(View view, int position) {
                                Toast.makeText( getApplicationContext(), "Ooops, erro aqui!", Toast.LENGTH_SHORT ).show();
                            }
                        } );
                        return viewHolder;
                    }
                };

        //Mandando o adapter para o 'Recycler View'
        recyclerView.setAdapter( firebaseRecyclerAdapter );

    }

1 Ответ

0 голосов
/ 03 августа 2020

DatabaseReference mRef = FirebaseDatabase.getInstance (). GetReference ("Publicacoes"); final Query firebase = mRef.orderByChild ("автор") .equalTo (nome);

    firebase.addListenerForSingleValueEvent( new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot snapshot) {
            if (snapshot.exists()) {

                FirebaseRecyclerAdapter<Noticias, dados_noticias> firebaseRecyclerAdapter =
                        new FirebaseRecyclerAdapter<Noticias, dados_noticias>(
                                Noticias.class,
                                R.layout.card_noticias,
                                dados_noticias.class,
                                firebase
                        ) {
                            @Override
                            protected void populateViewHolder(dados_noticias viewHolder, Noticias noticias, int i) {

                                viewHolder.setDetails( getApplicationContext(), noticias.getTitulo(), noticias.getImagem_titulo(), noticias.getVisualizacoes(), noticias.getData(), noticias.getConteudo() );

                            }
                            
                            @Override
                            public dados_noticias onCreateViewHolder(final ViewGroup parent, final int viewType) {
                                final dados_noticias viewHolder = super.onCreateViewHolder( parent, viewType );
                                viewHolder.setOnClickListener( new dados_noticias.ClickListener() {

                                    @Override
                                    public void onItemClick(View view, int position) {

                                        String chave = getRef(position).getKey();

                                        Intent intent = new Intent( getBaseContext(), Activity_das_noticias.class );
                                        intent.putExtra( "chave", chave );
                                        startActivity( intent );
                                    }

                                    @Override
                                    public void onItemLongClick(View view, int position) {
                                    }
                                } );
                                return viewHolder;
                            }

                        };


                recyclerView.setAdapter( firebaseRecyclerAdapter );

            }
        }

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

    } );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...