Аутентификация FirebaseUI с помощью Facebook не работает

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

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

На панели инструментов приложения Facebook я установил URI перенаправления действительного OAuth, как указано в руководстве по firebase, и я установил приложение публично (имеет значение, является ли оно общедоступным или находится в состоянии разработки?). В консоли 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
        }
    }
}

build.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'

Ответы

Ответ 1

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

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

APPID можно найти на панели developers.facebook.com.

Смотрите firebaseui-auth readme

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

Ответ 2

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

Службы Google Play обновлены до 9.0.2 Теперь доступна версия для служб Google Play версии 9.0.2. В этом выпуске исправлена ​​известная проблема с Firebase Authentication, где FirebaseAuthApi недоступен на некоторых устройствах.

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