Я пытаюсь использовать Firebase Auth для создания нового пользователя, но я хочу проверить некоторые поля (сопоставление с образцом) с использованием правил безопасности Firestore перед созданием новой учетной записи. Как я могу это сделать?
В обработчике завершения для функции createUser (withEmail:, password :) я выполняю некоторые записи в Firestore при успешном создании учетной записи.
Я сталкиваюсь спроблема, при которой иногда запись в Firestore может быть неудачной из-за правил безопасности Firestore (сопоставление с образцом). В этом случае запись не удалась, но новая учетная запись пользователя все еще создается (поскольку попытки записи предпринимаются в обработчике завершения).
// Create User Method - Firebase Auth & Swift
Auth.auth().createUser(withEmail: self.emailTextField.text!, password: self.passwordTextField.text!) { (result, error) in
if error != nil {
print(error?.localizedDescription)
} else {
let userName = [
userName:self.userNameTextField.text!
]
// Writing field Data to Firestore
Firestore.firestore().collection("users").document(self.userNameTextField.text!).setData(userName) {(err) in
if err != nil {
// Rather than throwing a fatalError, how can I ensure new account creation is cancelled so that feedback can be given on the issue with entered field data?
fatalError()
}
Я хочу убедиться, что учетная запись пользователя не создается в случае, если записи в Firestoreне удалось из-за конфликта с правилами безопасности Firestore.