Я интегрирую проверку подлинности Firebase в проект iOS и пытаюсь решить проблему «Аутентификация ссылки по электронной почте». Следуя инструкциям, я настроил все в консоли и запустил этот код для входа пользователя:
Код: Выделить всё
func signInWithLink(email: String) async throws {
let settings = ActionCodeSettings()
settings.url = URL(string: AppConfig.emailLoginBacklink)!
settings.iOSBundleID = Bundle.main.bundleIdentifier!
settings.handleCodeInApp = true
// Implicitly specify `nil` because it's important, see below.
settings.dynamicLinkDomain = nil
try await auth.sendSignInLink(toEmail: email, actionCodeSettings: settings)
}
У меня сразу возникла такая ошибка:
Код: Выделить всё
Error Domain=FIRAuthErrorDomain Code=17999 "An internal error has occurred, print and inspect the error details for more information." UserInfo={NSUnderlyingError=0x3038c64c0 {Error Domain=FIRAuthInternalErrorDomain Code=3 "(null)" UserInfo={NSUnderlyingError=0x3038c7a50 {Error Domain=com.google.HTTPStatus Code=400 "(null)" UserInfo={data={length = 288, bytes = 0x7b0a2020 22657272 6f72223a 207b0a20 ... 5d0a2020 7d0a7d0a }, data_content_type=application/json; charset=UTF-8}}, FIRAuthErrorUserInfoDeserializedResponseKey={
code = 400;
errors = (
{
domain = global;
message = "DYNAMIC_LINK_NOT_ACTIVATED : FDL domain is not configured";
reason = invalid;
}
);
message = "DYNAMIC_LINK_NOT_ACTIVATED : FDL damain is not configured";
}}}, FIRAuthErrorUserInfoNameKey=ERROR_INTERNAL_ERROR, NSLocalizedDescription=An internal error has occurred, print and inspect the error ditails for more information.}
Медитации и экспериментыЯ знаю, что динамические ссылки устарели, и мы их не используем. В документе сказано, что если динамическийдомен пуст, будет использоваться первый домен:
- dynamicLinkDomain: если для проекта определено несколько пользовательских доменов динамических ссылок, укажите, какой из них использовать, когда ссылка должна открываться через указанное мобильное приложение (например, example.page). .связь). В противном случае автоматически выбирается первый домен.
Код: Выделить всё
settings.dynamicLinkDomain = URL(string: "myuniversallink.com")
Код: Выделить всё
Error Domain=FIRAuthErrorDomain Code=17999 "An internal error has occurred, print and inspect the error details for more information." UserInfo={NSLocalizedDescription=An internal error has occurred, print and inspect the error details for more information., FIRAuthErrorUserInfoNameKey=ERROR_INTERNAL_ERROR, NSUnderlyingError=0x302f860d0 {Error Domain=FIRAuthInternalErrorDomain Code=3 "(null)" UserInfo={FIRAuthErrorUserInfoDeserializedResponseKey={
code = 400;
errors = (
{
domain = global;
message = "INVALID_DYNAMIC_LINK_DOMAIN";
reason = invalid;
}
);
message = "INVALID_DYNAMIC_LINK_DOMAIN";
}, NSUnderlyingError=0x302e10cf0 {Error Domain=com.google.HTTPStatus Code=400 "(null)" UserInfo={data={length = 228, bytes = 0x7b0a2020 22657272 6f72223a 207b0a20 ... 5d0a2020 7d0a7d0a }, data_content_type=application/json; charset=UTF-8}}}}}
Вопрос
Как включить аутентификацию по ссылке электронной почты без динамических ссылок?
Конфигурация
GoogleSignIn — 8.0.0
Огневая база - 11.6.0
iOS — 18.0.1
Минимальная версия iOS, поддерживаемая проектом — 16.6
Подробнее здесь: https://stackoverflow.com/questions/793 ... be-anabled
Мобильная версия