как перечислить пост человека в его профильной активности - PullRequest
0 голосов
/ 18 мая 2019

Я создаю социальное приложение, используя firebase, когда речь идет об активности профиля, и я хочу опубликовать сообщение только человека, которого я не могу, мне удалось опубликовать сообщение всех пользователей на главной странице в виде ленты новостей, но я не могуфильтровать только сообщения пользователей, это узел пользователей с идентификатором человека в качестве дочернего элемента

я попробовал это

   userRef=FirebaseDatabase.getInstance().getReference().child("Users");
RecieverId=getIntent().getExtras().get("brand_id").toString();

 private void DisplayAllOffers() {
        FirebaseRecyclerOptions<Posts> options = new FirebaseRecyclerOptions.Builder<Posts>()
                .setQuery(PostRef.child(RecieverId),Posts.class).build();

        FirebaseRecyclerAdapter<Posts,PostViewHolder> firebaseRecyclerAdapter = new FirebaseRecyclerAdapter<Posts, PostViewHolder>(options) {
            @Override
            protected void onBindViewHolder(@NonNull  PostViewHolder holder, int position, @NonNull Posts model) {
//                holder.Title.setText(model.getTitle());
                final  String postKey = getRef(position).getKey();
                holder.Price.setText(model.getPrice());
                holder.Duration.setText(model.getDuration());
                holder.date.setText(model.getDate());
                holder.description.setText(model.getDescription());
                holder.time.setText(model.getTime());
                holder.username.setText(model.getUsername());
                holder.setLikeButtonStatus(postKey);
                Picasso.get().load(model.getProfileImage()).into(holder.ProfileImage);
                Picasso.get().load(model.getPostImage()).into(holder.postImage);

                holder.itemView.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        Intent postIntent = new Intent(BrandActivity.this,ClickPostActivity.class);
                        postIntent.putExtra("postKey",postKey);
                        startActivity(postIntent);
                    }
                });









            }

            @NonNull
            @Override
            public PostViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {

                View view =LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.offer_layout,viewGroup,false);
                PostViewHolder holder =new PostViewHolder(view);
                return holder;

            }
        };
        Profile_posts.setAdapter(firebaseRecyclerAdapter);
        firebaseRecyclerAdapter.startListening();


    }

, и он возвращает пустое окно повторного использования

1 Ответ

0 голосов
/ 30 мая 2019

Если вы хотите опубликовать сообщение для конкретного пользователя, вам нужно изменить параметры с помощью

FirebaseRecyclerOptions<Posts> options = new FirebaseRecyclerOptions.Builder<Posts>().setQuery(PostRef.orderByChild("Uid").equalTo(FirebaseAuth.getInstance().getUid())),Posts.class).build();

, вот этот PostRef.orderByChild ("Uid"). EqualTo (FirebaseAuth.getInstance (). GetUid ()) фильтр запросов для текущего сообщения пользователя

вы также можете получить иное, чем текущее сообщение конкретного пользователя, все, что вам нужно сделать, это только изменить FirebaseAuth.getInstance (). getUid () на идентификатор пользователя в функции equalTo

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