Android Firebase Realtime DB: addListenerForSingleValueEvent не запускается - PullRequest
0 голосов
/ 07 июня 2018

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

Единственная проблема с ним - это часть, когда я пытаюсь запросить базу данных, чтобы проверить, существует ли пользователь уже.Ниже приведен фрагмент кода, который выполняет этот запрос, однако, кажется, что поток не входит в часть 'addListenerForSingleValueEvent':

private void firstTimeUser(final String chkMail){

    myRef.child("profile").addListenerForSingleValueEvent(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            userExists = dataSnapshot.hasChild(chkMail);
            Log.d(TAG, "UserCheck1= " + userExists);
        }
        @Override
        public void onCancelled(DatabaseError databaseError) {

            Toast.makeText(getApplicationContext(), "An unexpected error occurred!", Toast.LENGTH_SHORT).show();
        }
    });
    Log.d(TAG, "UserCheck2 = " + userExists);

}

Некоторое расследование, которое я провел:

  1. Отладка показывает, что код не входит в onDataChange или onCancelled.
  2. Переменная chkMail не является нулевой (снова отображается в отладке).
  3. Приложение подключается к правильной базе данных Firebase идетский профиль существует.
  4. Если я уберу эту проверку (независимо от того, существует ли пользователь в БД или нет), следующая часть обновления базы данных Firebase данными пользователя проходит через все детали, и данные отображаются на панели инструментов Firebase.Однако это должно произойти, только если пользователь еще не существует.

Я также посмотрел на тему this .Включены операторы Log внутри onDataChange (как видно из приведенного выше фрагмента), однако UserCheck1 нигде не регистрируется, предполагая, что выполнение пропускается!

Есть ли какие-либо указатели от всех ваших хороших людей?

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