Я очень новичок в разработке для iOS (учусь по ходу дела) и использую Cloud Firestore для аутентификации пользователей по электронной почте / паролю.Я пытаюсь сделать простую аутентификацию по электронной почте и паролю.Я использовал одно из правил БД из документации, и я не думаю, что мне нужно создавать коллекции и документы в правилах.Я уже проверил свое соединение с БД, так что это тоже не проблема.Пока у меня есть код ниже:
import UIKit
import Firebase
class SignUpViewController: UIViewController {
//Outlets
@IBOutlet weak var firstNameText: UITextField!
@IBOutlet weak var lastNameText: UITextField!
@IBOutlet weak var emailText: UITextField!
@IBOutlet weak var passwordText: UITextField!
@IBOutlet weak var signUpButton: UIButton!
override func viewDidLoad() {
super.viewDidLoad()
}
@IBAction func signUpButtonTapped(_ sender: Any) {
guard let firstName = firstNameText.text,
let lastName = lastNameText.text,
let email = emailText.text,
let password = passwordText.text else { return }
Auth.auth().createUser(withEmail: email, password: password) { (authResult, error) in
if let error = error {
debugPrint("Error creating user: \(error.localizedDescription)")
}
let changeRequest = Auth.auth().currentUser?.createProfileChangeRequest()
changeRequest?.displayName = firstName
changeRequest?.commitChanges(completion: { (error) in
if let error = error {
debugPrint(error.localizedDescription)
}
})
guard let userId = authResult?.user else { return }
Firestore.firestore().collection(USERS_REF).document(userId).setData([
USERNAME : firstName,
DATE_CREATED : FieldValue.serverTimestamp()
], completion: { (error) in
if let error = error {
debugPrint(error.localizedDescription)
} else {
self.dismiss(animated: true, completion: nil)
}
})
}
}
}
Но я получаю ошибку:
- Невозможно вызвать 'setData' со списком аргументов типа '([String: Any], завершение: ((Ошибка?) -> Void)?) '
Что-то я не делаю?Может ли кто-нибудь помочь с этой аутентификацией по электронной почте / паролю?