Связать учетные записи Firebase, у которых нет поставщика, с Microsoft

#swift #firebase #firebase-authentication

#swift #firebase #firebase-аутентификация

Вопрос:

Я пытаюсь связать существующие учетные записи Firebase с учетными записями Microsoft.

Мой вход в мое приложение для iOS в Microsoft (Azure AD) работает правильно, если учетная запись с тем же адресом электронной почты еще не существует, но я хочу объединить существующие учетные записи с этими учетными записями Microsoft. Причина этого в том, что я хочу определить UID, который пользователь получает, предварительно создав эту учетную запись с помощью Firebase SDK.

Проблема, по-видимому, заключается в том, что эти учетные записи, созданные с помощью Firebase SDK, не могут быть помечены как учетная запись «Microsoft». На самом деле они не получают никакого поставщика после создания. И, с другой стороны, функция Auth.auth().currentUser?.linkAndRetrieveData(with: pendingCred) , похоже, не работает для тех учетных записей, у которых нет установленного поставщика (пожалуйста, поправьте меня, если это неправильно).

Кто-нибудь знает решение для подключения учетных записей Microsoft к аутентификации Firebase с помощью UID, который я могу определить?

нет поставщика

Редактировать: что я выяснил до сих пор:

При входе Auth.auth().signIn(withEmail: email, password: password) в систему дублированные учетные записи автоматически объединяются с пустым поставщиком (что имеет смысл).

Я бы тоже ожидал такого поведения при использовании Auth.auth().signIn(with: credential) , но, к сожалению, это не так. Может быть, кто-то еще знает решение.

Комментарии:

1. Firebase поддерживает привязку учетных записей — вы смотрели на это? Например. firebase.google.com/docs/auth/ios/account-linking (iOS) или firebase.google.com/docs/auth/android/account-linking (веб).

2. Да, я это сделал. Но мне кажется, что связывание работает только в том случае, если уже есть активный поставщик авторизации, с которым я хочу связать. В моем случае есть только «пустые» учетные записи, в которых ранее не был установлен поставщик авторизации.