Как войти в firebase анонимно из Сервиса или JobIntentService - PullRequest
0 голосов
/ 05 апреля 2019

Я пытаюсь войти в Firebase из этих служб в Android.

Я могу успешно анонимно войти в свою основную деятельность следующим образом:

private FirebaseAuth mAuth;

(more code)

mAuth.signInAnonymously().addOnSuccessListener(this, new OnSuccessListener<AuthResult>() {
                                        @Override
                                        public void onSuccess(@NonNull AuthResult authResult) {

(more code to execute when the user has logged)

Но если я пытаюсь использовать то же самое из Service или JobIntentService, это невозможно сделать, так как первый параметр для addOnSuccessListener должен ссылаться на действие.

Я пытался выполнить приведение в сервисе к Activity, чтобычто "это", но, как и ожидалось, это не сработало.

Я также пытался с:

mAuth.signInAnonymously().addOnCompleteListener(

Но то же самое происходит с первым параметром, он должен бытьактивность.

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

Если это не было ограничением для firebase и не может быть сделано, что я нахожу довольно странным.

1 Ответ

0 голосов
/ 05 апреля 2019

Я наконец-то понял решение:

Этот код:

while (true){
            try {
                if (mAuth.getCurrentUser().getUid() == null) {

                } else {
                    break;
                }
            }
            catch (Exception e)
            {

            }
        }

Позволяет дождаться успешного входа пользователя в firebase.

Его можно улучшить, ограничив число циклов выполнения, но это общая идея.

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