Авторизуйтесь в Facebook, используя Firebase Auth: Ошибка разработчика - PullRequest
2 голосов
/ 15 октября 2019

Я использую Войдите в Facebook, используя Firebase Auth в моем приложении для Android, используя Настраиваемый макет . Это дает Developer error после обновления API API Facebook с 3.2 до 4.4. Я следую полной процедуре. Создайте проект для Firebase и консоли разработчика Facebook. включите вход в Facebook через аутентификацию Firebase, добавьте идентификатор приложения и секретный ключ приложения в Firebase. получить присягу URL и добавить в консоль Facebook. Также сгенерируйте Openssl SHA для Facebook и добавьте в него. вот мои зависимости:

implementation 'com.firebaseui:firebase-ui-auth:4.3.1'
implementation 'com.google.firebase:firebase-core:16.0.9'
implementation 'com.google.firebase:firebase-auth:17.0.0'
implementation 'com.firebaseui:firebase-ui-database:4.3.1'
implementation 'com.facebook.android:facebook-android-sdk:5.0.0'
implementation "com.google.android.gms:play-services-auth:17.0.0"

это код, который я сделал:

 AuthMethodPickerLayout customLayout = new AuthMethodPickerLayout
                .Builder(R.layout.activity_main)
                .setGoogleButtonId(R.id.ll_google)
                .setFacebookButtonId(R.id.ll_facebook)
                .setEmailButtonId(R.id.ll_email)
                // ...
                //.setTosAndPrivacyPolicyId(R.id.baz)

                .build();
        // Choose authentication providers
        List<AuthUI.IdpConfig> providers = Arrays.asList(
                new AuthUI.IdpConfig.EmailBuilder().build(),
                new AuthUI.IdpConfig.GoogleBuilder().build(),
                new AuthUI.IdpConfig.FacebookBuilder().build());


        AuthUI.getInstance()
                .createSignInIntentBuilder()
                .setIsSmartLockEnabled(false)
                .setLogo(R.drawable.icon)
                .setAuthMethodPickerLayout(customLayout)
                .setTosAndPrivacyPolicyUrls("https://mybrandfitness.com/terms-conditions",
                        "https://mybrandfitness.com/privacy-policy")
                .build();

llFacebook.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                AuthUI.IdpConfig facebookIdp = new AuthUI.IdpConfig.FacebookBuilder()
                        .setPermissions(Arrays.asList("email", "public_profile"))
                        .build();

                startActivityForResult(
                        AuthUI.getInstance()
                                .createSignInIntentBuilder()
                                .setAvailableProviders(Arrays.asList(facebookIdp))
                                .build(),
                        RC_SIGN_IN);
            }
        });

это дает мне следующую ошибку:

E/AuthUI: A sign-in error occurred.
com.firebase.ui.auth.FirebaseUiException: Developer error
    at com.firebase.ui.auth.util.data.ProviderUtils$1.then(ProviderUtils.java:219)
    at com.firebase.ui.auth.util.data.ProviderUtils$1.then(ProviderUtils.java:195)
    at com.google.android.gms.tasks.zzf.run(Unknown Source)
    at android.os.Handler.handleCallback(Handler.java:739)
    at android.os.Handler.dispatchMessage(Handler.java:95)
    at android.os.Looper.loop(Looper.java:145)
    at android.app.ActivityThread.main(ActivityThread.java:5951)
    at java.lang.reflect.Method.invoke(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:372)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1399)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1194)

Любое предложение будет оценено. . спасибо

1 Ответ

1 голос
/ 18 октября 2019

Сначала откройте ProviderUtils.java:219, и вы увидите, что вход в систему прошел успешно, но возникло исключение для случая: существует существующий пользователь, у которого только неподдерживаемые методы входа в систему.

if (task.isSuccessful() && lastSignedInProviders.isEmpty()
                            && !methods.isEmpty()) {
                        // There is an existing user who only has unsupported sign in methods
                        return Tasks.forException(new FirebaseUiException(ErrorCodes
                                .DEVELOPER_ERROR));
                    }

Итак, я думаю, что электронная почта (вашей учетной записи Facebook), которую вы используете для подписи, использовалась для входа в ваше приложение раньше, используя другой метод входа, например: user и пароль.

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