Невозможно связать Facebook и Google в Аутентификации Firebase - PullRequest
0 голосов
/ 23 октября 2018

Я пытаюсь связать Facebook и Google.Итак, сценарий таков:

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

func fetchUserInfo()
{
    Auth.auth().signInAndRetrieveData(with:FacebookAuthProvider.credential(withAccessToken: (FBSDKAccessToken.current().tokenString)!), completion: { (result, error) in

        if let error = AuthErrorCode.init(rawValue: error!._code)
        {
            switch error
            {
            case .accountExistsWithDifferentCredential :

                let credential = FacebookAuthProvider.credential(withAccessToken: (FBSDKAccessToken.current()?.tokenString)!)

                Auth.auth().currentUser?.linkAndRetrieveData(with: credential, completion: { (result, error) in

                    if let error = error
                    {
                        print("Unable to link Facebook Account", error.localizedDescription)
                    }

                    else
                    {
                        NavigationHelper.shared.moveToHome(fromVC: self)
                    }
                })
            default: break
            }
        }
        else
        {
            GeneralHelper.shared.keepLoggedIn()

            if let currentUser = Auth.auth().currentUser
            {
                print(currentUser.email!)
            }
            NavigationHelper.shared.moveToHome(fromVC: self)
        }
    })
}

Здесь в документации Firebase говорится, что нам нужно просто связать currentUser и получить данные.Но проблема, с которой я сталкиваюсь, заключается в том, что currentUser всегда равен нулю.Итак, как мне получить текущего пользователя?Я уже пробовал это несколько месяцев назад, а затем я смог связать Facebook, Google и электронную почту.Нужно ли мне signInAndRetrieve данные от Google, чтобы получить currentUser?

1 Ответ

0 голосов
/ 24 октября 2018

Ошибка «Учетная запись существует с другими учетными данными» вызвана тем, что по умолчанию Firebase не позволяет использовать один и тот же адрес электронной почты для двух (или более) разных методов входа в систему.Вам необходимо включить эту опцию.

1 - Перейти к Аутентификация > Способ входа

image Sign-in method">

2 - Прокрутите вниз до Дополнительно: несколько учетных записей на один адрес электронной почты

Advanced

3 - Изменить параметрна Разрешить создание нескольких учетных записей с одним и тем же адресом электронной почты

enter image description here

К вашему сведению: вам необходимо выполнить весь процесс входа для каждого знакаВ методе в вашем приложении.Каждый метод имеет свои учетные данные.

Надеюсь, это поможет.

...