FireAuth에서 메일 발송 확인 방법
평소 앱을 만들 때 확인 메일을 보낸 적이 없다고 생각해서 조사해봤어요.
또 RxSwift 공부도 병행하는 김에 RxSwift로 썼다.
RxSwift 해설은 없습니다.
그럼 바로 코드를 쓰세요.
ViewModel
protocol ViewPresentable {
typealias Input = (
emailText: Driver<String>,
passwordText: Driver<String>,
tappedButton: Driver<()>
)
typealias Output = (
isValid: Driver<Bool>, ()
)
var input: ViewPresentable.Input { get }
var output: ViewPresentable.Output { get }
}
class ViewModel: ViewPresentable {
var input: ViewPresentable.Input
var output: ViewPresentable.Output
private var emailBehavior = BehaviorRelay<String>(value: "")
private var passwordBehavior = BehaviorRelay<String>(value: "")
private let disposeBag = DisposeBag()
init(input: ViewPresentable.Input) {
self.input = input
self.output = ViewModel.output(input: self.input)
input.emailText
.drive(emailBehavior)
.disposed(by: disposeBag)
input.passwordText
.drive(passwordBehavior)
.disposed(by: disposeBag)
process()
}
}
private extension ViewModel {
static func output(input: ViewPresentable.Input) -> ViewPresentable.Output {
let emailDriver = input.emailText
let passwordDriver = input.passwordText
let isValid = Driver.combineLatest(emailDriver, passwordDriver) { (email, password) -> Bool in
return !email.isEmpty && !password.isEmpty
}.asDriver(onErrorJustReturn: false)
return (
isValid: isValid, ()
)
}
func process() {
self.input
.tappedButton.drive(onNext: {
let email = self.emailBehavior.value
let password = self.passwordBehavior.value
AuthManager.shared.createUser(email: email, password: password)
}).disposed(by: disposeBag)
}
}
AuthManagerclass AuthManager {
static let shared = AuthManager()
private let auth = Auth.auth()
}
extension AuthManager {
func createUser(email: String, password: String) {
auth.createUser(withEmail: email, password: password) { (result, error) in
guard let user = result?.user, error == nil else {
print(error!)
return
}
user.sendEmailVerification { (error) in
if let error = error {
print(error)
}
}
}
}
}
이번 보도의 간은요.user.sendEmailVerification
섹션이렇게 하면 확인 메일을 보낼 수 있습니다.
다만, 기본적으로 일본어가 아니기 때문에 Firebase 콘솔을 사용합니다
Authentication을 엽니다.탭
그곳의 맨 밑에 템플릿 언어가 있기 때문에 펜슬에 따라 언어를 수정할 수 있습니다.
그리고 우편물의 내용도 변경할 수 있으니 한번 해 보세요.
ViewController
class ViewController: UIViewController {
@IBOutlet weak var emailField: UITextField!
@IBOutlet weak var passwordField: UITextField!
@IBOutlet weak var subscribeButton: UIButton!
private let disposeBag = DisposeBag()
private lazy var viewModel = ViewModel(input: (emailText: emailField.rx.text.orEmpty.asDriver(),
passwordText: passwordField.rx.text.orEmpty.asDriver(),
tappedButton: subscribeButton.rx.tap.asDriver()))
override func viewDidLoad() {
super.viewDidLoad()
setupBind()
}
private func setupBind() {
viewModel.output.isValid
.drive(subscribeButton.rx.isEnabled)
.disposed(by: disposeBag)
}
}
이런 느낌이에요.실행을 해보면 우편물이 도착한다.
총결산
이번 해설은 적지만 확인 메일만 보내기 때문에 난이도가 높지 않다.
지금까지는 이루어지지 않았지만 메일 확인은 필수죠.
지적이 있으면 메시지를 남겨 주세요.
Reference
이 문제에 관하여(FireAuth에서 메일 발송 확인 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/tyatya_maruko/items/853fecb73210c744c519텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)