Получить старые данные из Firebase при удалении локального пользователя - PullRequest
0 голосов
/ 25 мая 2018

Я работаю над приложением для Android с логином и паролем.Пользователь создается в локальной базе данных sqlite и в firebase + auth.

Ситуация : пользователь удаляет приложение, локальная база данных удаляется.Затем пользователь переустанавливает приложение и хочет войти в систему, используя старые учетные данные, но пользователь не существует локально, поэтому приложение пытается создать новое.- но пользователь уже существует удаленно в моей таблице пользователей firebase + auth.

Вопрос : Как мне запросить либо firebase auth , либо firebase для информации о пользователе только с использованием электронной почты, пропуска и, возможно, нескольких дополнений.

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

Ответы [ 2 ]

0 голосов
/ 25 мая 2018

Вы можете использовать Firebase в автономном режиме.Вам не нужно использовать две базы данных.
Справочник здесь .

0 голосов
/ 25 мая 2018

Я решил это сам.

Это было просто и совсем не так.Часть моего исправления ниже.Но вкратце.Я получаю пользователя из firebase, затем обновляю его до firebase и затем восстанавливаю пользователя в addValueEventListener (new ValueEventListener ()

_fbAuth.signInWithEmailAndPassword(_email, _password).addOnCompleteListener(LoginActivity.this, new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
    if (task.isSuccessful()) {

        Log.d(TAG, "Firebase login success");

        FirebaseUser fbUser = _fbAuth.getCurrentUser();
        String uid = fbUser.getUid();

        FireBaseWriteHelper wh = new FireBaseWriteHelper();
        FireBaseReadHelper fireBaseReadHelper = new FireBaseReadHelper(getApplicationContext(), uid, Util.VERSION_KEY_FREE);

        DateFormat format = DateFormat.getDateInstance(DateFormat.SHORT, Locale.getDefault());
        Date date = new Date();
        wh.UpdateUserLastLogIn(uid, format.format(date));

        _user = _userHelper.CheckUserExist(_email, _password);

        mPasswordView.setError(null);
        mEmailView.setError(null);

    } else {
        try {
            throw task.getException();
        } catch (FirebaseAuthInvalidUserException e) {
        } catch (FirebaseAuthInvalidCredentialsException e) {
        } catch (FirebaseNetworkException e) {
        } catch (Exception e) {
        }
    }
}
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...