Вход в Facebook с использованием firebaseui не работает errorCode: 100, subErrorCode: 33, errorType: GraphMethodException - PullRequest
2 голосов
/ 19 января 2020

Я следовал Руководству по аутентификации через Facebook . Когда я дошел до «Authenticate with Firebase», мне сказали, что я должен следовать документации разработчика Facebook . Как только я добавил facebook_app_id в Androidmanifest, который находится в 4. Отредактируйте ваши ресурсы и манифест , шаг 4:

<meta-data android:name="com.facebook.sdk.ApplicationId" 
        android:value="@string/facebook_app_id"/>

Я получил ошибку:

Manifest merger failed : Attribute meta-data#com.facebook.sdk.ApplicationId@value value=(@string/facebook_app_id) from AndroidManifest.xml:52:13-52
    is also present at [com.firebaseui:firebase-ui-auth:4.3.1] AndroidManifest.xml:21:13-60 value=(@string/facebook_application_id).
    Suggestion: add 'tools:replace="android:value"' to <meta-data> element at AndroidManifest.xml:50:9-52:55 to override. 

Кажется странным добавлять ключ в любом случае, потому что я использую Firebase, чтобы У меня есть автоматизированный c пользовательский интерфейс, и я ожидаю, что Firebase справится с этим для меня. В документации Firebase также написано «Если вы интегрировали Facebook Login, используя LoginButton», зачем мне это? Единственная причина, по которой вы реализуете пользовательский интерфейс Firebase, заключается в том, что вам не нужно добавлять кнопку et c.

. Когда я удаляю facebook_app_id, я получаю ошибку ниже:

E/GraphResponse: {HttpStatus: 400, errorCode: 100, subErrorCode: 33, errorType: GraphMethodException, errorMessage: Unsupported get request. Object with ID '1234567890' does not exist, cannot be loaded due to missing permissions, or does not support this operation. Please read the Graph API documentation at https://developers.facebook.com/docs/graph-api}

Кажется, это проблема. Это метод:

override suspend fun makeSignInIntent(): Intent {
    return withContext(ioDispatcher) {
        // Choose authentication providers
        val providers = arrayListOf(
            AuthUI.IdpConfig.EmailBuilder().build(),
            AuthUI.IdpConfig.GoogleBuilder().build()
//                AuthUI.IdpConfig.FacebookBuilder().build()
        )
        // Create and launch sign-in intent
        AuthUI.getInstance()
            .createSignInIntentBuilder()
            .setAvailableProviders(providers)
            .build()
    }
}

Обратите внимание, что я исключил AuthUI.IdpConfig.FacebookBuilder().build() и все еще получаю ошибку.

Вот мой build.gradle:

implementation 'com.firebaseui:firebase-ui-auth:6.2.0'
implementation 'com.firebaseui:firebase-ui-database:6.2.0'
implementation "com.google.firebase:firebase-auth:19.2.0"
implementation "com.google.firebase:firebase-database:19.2.0"
implementation 'com.facebook.android:facebook-android-sdk:5.13.0'
implementation 'com.facebook.android:facebook-login:5.13.0'

Мои строки. xml:

<!-- Facebook application ID and custom URL scheme (app ID prefixed by 'fb'). -->
<string name="facebook_application_id" translatable="false">MY_KEY</string>
<!-- Facebook Application ID, prefixed by 'fb'. Enables Chrome Custom tabs. -->
<string name="facebook_login_protocol_scheme" translatable="false">fbMY_KEY</string>

Я включил вход в Facebook и добавил необходимые ключи:

enter image description here

I также добавлен URI перенаправления и ключ разработки Ha sh:

enter image description here

ОБНОВЛЕНИЕ : также пробовал эту документацию , но тоже самое.

...