Аутентификация FirebaseUI с Facebook не работает

Я использую FirebaseUI-Аутентификация. Вход в систему с помощью электронной почты или учетной записи Google успешно, но войти с Facebook не работает. onActivityResult() не вызывается после AuthUI деятельность начал и попытался войти в систему с Facebook. После попытки входа приложение застревает в окне загрузки. logcat выводит журнал FirebaseApp:

уведомление прослушивателей изменения фонового состояния.

на панель мониторинга приложений Facebook я установил допустимый URI перенаправления OAuth, как указано в руководстве firebase, и я установил приложение public (имеет ли значение, является ли оно общедоступным или находится в состоянии разработки?). В консоль Firebase я включил вход в Facebook и установил идентификатор и приложения.

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

Почему onActivityResult() называется?

MainActivity:

/**
 * Use this method to start the FirebaseUI sign in activity.
 */
public void switchToSignIn() {
    this.activity.startActivityForResult(
            AuthUI.getInstance()
                    .createSignInIntentBuilder()
                    .setProviders(
                            AuthUI.EMAIL_PROVIDER,
                            AuthUI.GOOGLE_PROVIDER,
                            AuthUI.FACEBOOK_PROVIDER)
                    .build(), RC_SIGN_IN);
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode == RC_SIGN_IN) {
        if (resultCode == this.activity.RESULT_OK) {
            // user is signed in!
            Log.d(Constants.TAG_LoginHandler, "Sign in result: RESULT_OK");
            logUserInfo();
            tryAccessMainFragment();
        } else {
            Log.d(Constants.TAG_LoginHandler, "Sign in result: RESULT_CANCELLED");
            // user is not signed in. Maybe just wait for the user to press
            // "sign in" again, or show a message
        }
    }
}

построить.Gradle в:

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:23.4.0'
    compile 'com.android.support:support-v4:23.4.0'
    compile 'com.android.support:design:23.4.0'
    compile 'com.firebaseui:firebase-ui:0.4.0'
    compile 'com.squareup.picasso:picasso:2.5.2'
    compile 'de.hdodenhof:circleimageview:1.3.0'
}

apply plugin: 'com.google.gms.google-services'

2 ответов


Если вы используете FirebaseUI, вы должны поместить эту точную строку в строки.XML-код:

<string name="facebook_application_id" translatable="false">APPID</string>

на APPID на панель управления developers.facebook.com .

посмотреть firebaseui-auth readme

также не забудьте добавить свой хэш ключа android и URL-адрес OAuth firebase в приложении facebook.


попробуйте обновить до новой версии служб Google Play, где они исправили некоторые проблемы, связанные с аутентификацией Firebase. (Хотя они специально не упоминали о входе в Facebook)

сервисы Google Play обновлены до 9.0.2 теперь доступна версия Google Play services версии 9.0.2. Этот выпуск устраняет известную проблему с проверкой подлинности Firebase, где FirebaseAuthApi недоступен на некоторых устройства.

https://developers.google.com/android/guides/releases