Подтвердить что ты не робот

Ошибка анонимной аутентификации Firebase через мобильные данные

У меня возникают проблемы с аутентификацией Firebase, когда устройство подключено через соединение Mobile Data. Если соединение через аутентификацию WiFi работает нормально.

Я использую следующий код для аутентификации:

public class MyAuthActivity extends Activity
{
    protected FirebaseAuth auth;
    protected FirebaseAuth.AuthStateListener authListener;

    protected FirebaseUser user;

    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);

        auth = FirebaseAuth.getInstance();

        authListener = new FirebaseAuth.AuthStateListener()
        {
            @Override
            public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth)
            {
                user = firebaseAuth.getCurrentUser();
                if (user != null)
                {
                    // User is signed in
                    Log.d("APP", "onAuthStateChanged:signed_in: " + user.getUid());
                }
                else
                {
                    // User is signed out
                    Log.d("APP", "onAuthStateChanged:signed_out");
                }
            }
        };
        auth.addAuthStateListener(authListener);

        auth.signInAnonymously()
                .addOnFailureListener(this, new OnFailureListener()
                {
                    @Override
                    public void onFailure(@NonNull Exception e)
                    {
                        Log.w("APP", "signInAnonymously failure: ", e);
                    }
                })
                .addOnCompleteListener(this, new OnCompleteListener<AuthResult>()
                {
                    @Override
                    public void onComplete(@NonNull Task<AuthResult> task)
                    {
                        Log.d("APP", "signInAnonymously:onComplete:" + task.isSuccessful());

                        if (!task.isSuccessful())
                        {
                            Log.w("APP", "signInAnonymously", task.getException());
                        }
                    }
                });


    }
}

Ошибка при подключении через мобильные данные:

signInAnonymously failure:                                                 com.google.firebase.FirebaseNetworkException: сетевая ошибка (например, таймаут, прерванное соединение или недоступный хост).                                                     at com.google.android.gms.internal.zzblv.zzce(Неизвестный источник)                                                     at com.google.android.gms.internal.zzbls $zzj.zza(Неизвестный источник)                                                     at com.google.android.gms.internal.zzbmd.zzcf(Неизвестный источник)                                                     at com.google.android.gms.internal.zzbmd $zza.onFailure(Неизвестный источник)                                                     at com.google.android.gms.internal.zzbly $zza.onTransact(Неизвестный источник)                                                     на android.os.Binder.execTransact(Binder.java:404)                                                     в dalvik.system.NativeStart.run(собственный метод)

Есть ли что-нибудь, что я могу сделать, чтобы решить вышеупомянутую проблему или получить дополнительную информацию о том, что действительно вызывает проблемы.

Мобильный телефон в противном случае хорошо работает через Mobile Data и успешно работает в Интернете и в Google Play Store.

Firebase версии 10.2.0, API API 19


Дополнительная информация. Первичной целью аутентификации является аутентификация доступа для базы данных Firebase.

Если я разрешаю доступ к базе данных без аутентификации, я могу подключать и извлекать данные через любое соединение (Mobile Data и WiFi). Аутентификация - это единственная часть, которая неожиданно терпит неудачу.

4b9b3361

Ответ 1

Возможно, был найден предыдущий ответ

fooobar.com/info/560412/...

Firebase не ограничивает подключение к Интернету

Вы можете проверить состояние мобильного соединения для передачи данных, используя следующее (код, взятый из https://developer.android.com/training/basics/network-ops/managing.html#check-connection)

private static final String DEBUG_TAG = "NetworkStatusExample";
...
ConnectivityManager connMgr = (ConnectivityManager)
        getSystemService(Context.CONNECTIVITY_SERVICE);

networkInfo = connMgr.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
boolean isMobileConn = networkInfo.isConnected();

Log.d(DEBUG_TAG, "Mobile connected: " + isMobileConn);

проверить это для не аутентифицированного и аутентифицированного доступа к БД, чтобы помочь вам отлаживать