Как выйти из аутентификации Facebook в Firebase SDK для iOS - PullRequest
0 голосов
/ 10 марта 2019

Я использую Firebase SDK в своем проекте iOS. Я создаю анонимную учетную запись сразу после запуска приложения.

Для входа в Facebook я использую следующий код -

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

Auth.auth().currentUser?.linkAndRetrieveData(with: credential)

Как мне осуществить выход? Мне нужно, чтобы пользователь вернулся в анонимную учетную запись Firebase.

Должен ли я напрямую вызвать Firebase Signout и создать новую анонимную учетную запись?

try! Auth.auth().signOut()

Auth.auth().signInAnonymously()

или мне следует вызвать метод выхода из FBSDKLoginManager, будет ли это сохраняться анонимным пользователем firebase, который был там до входа в Facebook?

FBSDKLoginManager().logOut()

или я должен отсоединить провайдера?

Auth.auth().currentUser?.unlink(fromProvider: providerID!)

Каким должен быть идеальный путь здесь?

1 Ответ

1 голос
/ 10 марта 2019

Чтобы войти в систему с помощью аутентификации Firebase через Facebook, необходимо выполнить вход с помощью Facebook и с помощью аутентификации Firebase.Если вы хотите затем подписать этого пользователя в Firebase Authentication с другим провайдером, вам нужно только вывести его из Firebase Authentication.


Связывание и отмена связи провайдеров служит другому варианту использования.Предположим, вы хотите разрешить пользователю входить в свою учетную запись Google, в дополнение к учетной записи Facebook, в которую он теперь вошел.

В этом случае вы можете оставить пользователя в системе, создать отдельные учетные данные для аутентификации для его учетной записи Google и связать двух провайдеров вместе .С этого момента, независимо от того, будет ли пользователь входить в систему со своей учетной записью Facebook или своими учетными данными Google, он будет входить в ту же учетную запись Firebase Authentication.

Вызов unlink после этого позволяет отсоединить однупоставщиков из учетной записи.


Обновление Кажется, теперь я понимаю ...

  1. У вас был пользователь, который вошел в систему анонимно.
  2. Затем вы выполнили вход с помощью учетной записи Facebook.
  3. И затем вы вывели их из учетной записи Facebook.
  4. Теперь вы хотите вернуться к предыдущей анонимной аутентификации.аккаунт.

Это невозможно.Когда вы регистрируете пользователя в Facebook, он выходит из своей предыдущей учетной записи.И когда пользователь выходит из анонимной аутентификации, эта учетная запись не может быть восстановлена.

Если этот является обычным вариантом использования для вашего приложения, вам нужно будет ссылка учетная запись Facebook к существующей учетной записи анонимной аутентификации в шаге 2 выше (вместо ее замены).Если вы сделаете это, вы действительно сможете отменить связь с учетной записью Facebook и вернуться (только) к провайдеру анонимной аутентификации.

...