Как получить те же данные из Firebase? - PullRequest
0 голосов
/ 11 ноября 2018

У меня есть некоторые проблемы при получении данных из Firebase. Я хочу получить электронные письма пользователей в виде списка, в котором имена пользователей совпадают. Я хочу получать электронные письма всех пользователей, чьи имена такие же, как у меня. Я понятия не имею, как это сделать, поскольку я новичок в Android.

Вот моя структура базы данных. Зелень убрана.

enter image description here

Можете ли вы сказать мне, как легко получить их в ListView?

1 Ответ

0 голосов
/ 12 ноября 2018

Для этого вы можете использовать orderByChild() вместе с equalTo(), чтобы сравнить имя пользователя с тем, что вы намереваетесь, а затем получить их электронную почту.

То, что я говорю, выглядит примерно так в коде:

DatabaseReference ref = FirebaseDatabase.getInstance().getReference().child("details");

  ref.orderByChild("username").equalTo(userNameYouWant).addListenerForSingleValueEvent(new ValueEventListener() {
                        @Override
                        public void onDataChange(@NonNull DataSnapshot dataSnapshot) {

                            for (DataSnapshot ds : dataSnapshot.getChildren()){
                                 email.add(ds.child("email").getValue(String.class)); // email here is the ArrayList where you need to add the email
                            }

                        }

                        @Override
                        public void onCancelled(@NonNull DatabaseError databaseError) { // ToDo: don't ignore this, do something for errors

                        }
                  )};                     

Этот код выше сравнивает все имена пользователей с userNameYouWant и, если он совпадает, добавляет значение в их узле email к email ArrayList.

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