Проверьте и сравните конкретные данные в приложении из данных Firebase - PullRequest
0 голосов
/ 14 октября 2018

Я создаю приложение для хранения пользовательских данных в базе данных Firebase в реальном времени.Я успешно сохранил и получил данные из базы данных Firebase.Теперь предположим, что пользователь сохранил свое имя в базе данных.Тогда я хочу проверить, существует имя или нет.

А если оно существует, то совпадает ли это имя с именем, хранящимся в строке в моем приложении, или нет?

Есть идеи?Как это сделать

Код, используемый для сохранения имени пользователя

databaseReference.child("users").child(uniqueID).setValue(name);

Есть ли способ получить это конкретное значение из базы данных?Например, есть что-то вроде getValue() или что-то еще?

Ниже приведен скриншот моего приложения: - App Screenshot

Вот последовательность моих приложений: -Сначала пользователь зарегистрируется, затем войдите.При первом входе пользователя в систему мы попросим его установить 4-значный код доступа, который будет храниться в базе данных Firebase.

Снимок экрана Aboveis Firebase: - Firebase Screenshot

Вот как я храню код доступа.Теперь, когда пользователь нажимает «SET», мы сохраняем введенный пароль в базу данных и перенаправляем пользователя в mainActivity.Но когда пользователь снова откроет наше приложение, мы проверим, есть ли в нашей базе данных пароль для этого конкретного пользователя или нет.Если пароль сохранен, мы напрямую отправим его на проверку пароля, где пользователь введет пароль, и мы должны проверить, совпадает ли пароль и пароль введен пользователем.но если в базе данных нет пароля, тогда мы снова откроем действие установки пароля и попросим его установить пароль.

1 Ответ

0 голосов
/ 14 октября 2018

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

Этот код не только проверяет, присутствует ли пароль, но и чтоэто правильно или нет.

DatabaseReference ref = FirebaseDatabase.getInstance().getReference().child("password").child("passcodes");
                    ref.orderByChild("passcode").equalTo(passCodeYouHave).addListenerForSingleValueEvent(new ValueEventListener() {
                        @Override
                        public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                            if(dataSnapshot.exists())
                              // passcode is present, and is correct
                            else
                                // incorrect passcode or no passcode

                        }

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

                        }
                    });

Здесь passCodeYouHave - пароль пользователя, который у вас есть в приложении, и вы можете использовать его для проверки в firebase, если такое имя существует в узле с именем passcode.

Этот код не проверяет правильный пароль, он просто проверяет, есть ли пароль или нет.

DatabaseReference ref = FirebaseDatabase.getInstance().getReference().child("password").child("passcodes");
                    ref.orderByChild("passcode").addListenerForSingleValueEvent(new ValueEventListener() {
                        @Override
                        public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                            if(dataSnapshot.exists())
                              // passcode is present, so go to activity for checking the passcode
                            else
                                // no passcode is present so go for activity to set up new passcode

                        }

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

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