【发布时间】:2020-12-07 16:52:29
【问题描述】:
我无法登录并总是看到此错误消息:
用于创建手机身份验证凭据的验证 ID 无效
我尝试像测试仪一样添加我的手机,但我没有成功。 登录方法已在 Firebase 控制台中开启。
我发现了同样的问题here,但没有答案。 我用firebase's docs. 请帮我弄清楚。
这是我的代码:
func verifyPhone(_ phone: String) -> AsyncTask<String?> {
return AsyncTask<String?>({ observer, lifetime in
guard !lifetime.hasEnded else {
observer.sendInterrupted()
return
}
Auth.auth().languageCode = "ua"
PhoneAuthProvider.provider().verifyPhoneNumber(phone, uiDelegate: nil) { verificationID, error in
if let error = error {
observer.send(error: AppError(error))
return
}
observer.send(value: verificationID)
observer.sendCompleted()
}
})
}
func signInViaPhoneNumber(usingCode smsCode: String) -> AsyncTask<Void> {
return AsyncTask<Void>({ observer, lifetime in
guard !lifetime.hasEnded else {
observer.sendInterrupted()
return
}
guard let verificationCode = UserDefaultsStorage.verificationCode else {
observer.send(error: AppError.logic("Відсутній код верифікації"))
return
}
let credential = PhoneAuthProvider.provider().credential(withVerificationID: smsCode,
verificationCode: verificationCode)
Auth.auth().signIn(with: credential) { result, error in
if let error = error {
observer.send(error: AppError(error))
return
}
guard let firUser = result?.user else {
observer.send(error: AppError.logic("Відсутній юзер"))
return
}
let factory: ModelFactory = ModelFactoryImpl()
let appUser = factory.makeUser(id: firUser.uid, name: firUser.displayName ?? "", phone: firUser.phoneNumber ?? "")
AppService.shared.user = appUser
observer.send(value: ())
observer.sendCompleted()
}
})
}
【问题讨论】:
-
您能否提供一些代码示例,说明您如何获取验证 ID 以及如何使用它?
-
@RazvanS。是的,当然
-
在 Stack Overflow 上,不要显示代码图片。将代码复制到问题本身并对其进行格式化,以便于阅读、复制和搜索。
-
@DougStevenson 谢谢)我已经改过了。
标签: ios swift firebase-authentication