Firebase Data не обновляется в два этапа проверки учетных записей входа в анонимный вход - PullRequest
0 голосов
/ 09 октября 2018

Я использую Firebase для отображения статуса своих ресторанов в сети и в автономном режиме, а также обновляю этот статус каждые 5 секунд через анонимный вход в систему. Для входа в систему требуется сервис воспроизведения, из-за чего у меня есть логин на устройстве с учетными данными Google.Я использую одни и те же учетные данные на нескольких устройствах без двухэтапной проверки в учетной записи, но если некоторые учетные записи имеют двухэтапную проверку того, что данные ресторанов не обновляются Вот мой код

private void signInAnnomymously() {
    try {
        if (mAuth == null)
            mAuth = FirebaseAuth.getInstance();
        mAuth.signInAnonymously()
                .addOnCompleteListener(mAct, new OnCompleteListener<AuthResult>() {
                    @Override
                    public void onComplete(@NonNull Task<AuthResult> task) {
                        if (task.isSuccessful()) {
                            // Sign in success, update UI with the signed-in user's information
                            Lg.d(TAG, "signInAnonymously:success");
                            FirebaseUser user = mAuth.getCurrentUser();
                            if (pref.isLoggedIn(instance)) {
                                // start handler for periodic online status
                                executeHandler();
                            }
                        } else {
                            // If sign in fails, display a message to the user.
                            Lg.w(TAG, "signInAnonymously:failure", task.getException());
                            //                            Toast.makeText(instance, "Authentication failed.",Toast.LENGTH_SHORT).show();
                        }

                    }
                });
    } catch (Exception e) {
        e.printStackTrace();
    }
}

Вот excuteHandler

private void executeHandler() {
    if (handler == null && runnable == null) {
        handler = new Handler();

        runnable = new Runnable() {
            @Override
            public void run() {

                if (pref.isLoggedIn(instance)) {
                    setOnlineOfflineFireBase(AppConstants.STATUS_ONLINE);
                }
                handler.postDelayed(this, EVERY_FIVE_SECOND);
            }
        };
    }
    else {
        handler.postDelayed(runnable, EVERY_FIVE_SECOND);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...