Android Studio Firebase Сравнение данных с ID - PullRequest
0 голосов
/ 24 декабря 2018

Существует действие, в котором я перечисляю пользователей, которые зарегистрированы в Firebase.Здесь перечислены все пользователи.Там также активность сообщений.Я хочу перечислить людей, которые только что переписывались там.У меня есть список чатов в Firebase.Люди, которые пишут здесь, являются id.В следующем коде перечислены все пользователи.Сравните таблицу пользователей с таблицей списков чатов, если идентификаторы, соответствующие сообщению, будут добавлены в действие.Как я могу внести изменения в этот код для соответствия?

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

    FirebaseRecyclerAdapter<Users, AllUserViewHolder> adapter =
            new FirebaseRecyclerAdapter<Users, AllUserViewHolder>
                    (
                            Users.class,
                            R.layout.user_item,
                            AllUserViewHolder.class,
                            usersRef

                    )
            {
                @Override
                protected void populateViewHolder(final AllUserViewHolder viewHolder, Users model, final int position)
                {
                    final String usersIDs = getRef(position).getKey();

                    usersRef.child(usersIDs).addValueEventListener(new ValueEventListener() {
                        @Override
                        public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                            if (dataSnapshot.exists())
                            {
                                final String userName =dataSnapshot.child("fullname").getValue().toString();
                                final String profileImage = dataSnapshot.child("profileimage").getValue().toString();
                                final String biography = dataSnapshot.child("biography").getValue().toString();

                                viewHolder.setFullname(userName);
                                viewHolder.setProfileimage(getApplicationContext(), profileImage);
                                viewHolder.setBiography(biography);

                                viewHolder.mView.setOnClickListener(new View.OnClickListener() {
                                    @Override
                                    public void onClick(View view) {

                                        CharSequence options[] = new CharSequence[]
                                                {
                                                        userName + "profilini gör",
                                                        "Mesaj Gönder"
                                                };
                                        AlertDialog.Builder builder = new AlertDialog.Builder(MessageActivity.this);
                                        builder.setTitle("Seç:");

                                        builder.setItems(options, new DialogInterface.OnClickListener() {
                                            @Override
                                            public void onClick(DialogInterface dialogInterface, int i)
                                            {
                                                if (i ==0)
                                                {
                                                    Intent profileIntent = new Intent(MessageActivity.this, UserProfileActivity.class);
                                                    profileIntent.putExtra("visit_user_id", usersIDs);
                                                    startActivity(profileIntent);
                                                }
                                                if (i == 1)
                                                {
                                                    Intent chatIntent = new Intent(MessageActivity.this, ChatActivity.class);
                                                    chatIntent.putExtra("visit_user_id", usersIDs);
                                                    chatIntent.putExtra("userName", userName);
                                                    startActivity(chatIntent);
                                                }

                                            }
                                        });
                                        builder.show();
                                    }
                                });
                            }
                        }

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

                        }
                    });




                }
            };
    usersList.setAdapter(adapter);
}

1 Ответ

0 голосов
/ 25 декабря 2018

Вместо того, чтобы сопоставлять их одно за другим, вы можете просто временно добавить их в массив, а затем сопоставить содержимое этого массива с содержимым вашего chatlist.

ArrayList<String> temp = new ArrayList<String>();

Этот подход не только лучше для вас рассмотреть, но и будет относительно проще для кодирования.

Если у вас возникли трудности с этим подходом, добавьте структуру вашей базы данных, и я могу помочь вам написать код для этого.

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