Как проверить поля на стороне сервера при создании пользователя с Firebase Auth? - PullRequest
0 голосов
/ 12 октября 2019

Я пытаюсь использовать 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.

1 Ответ

1 голос
/ 12 октября 2019

Firebase Authentication не имеет никаких правил безопасности. В настоящее время нет способа проверить, являются ли входящие свойства учетной записи действительными до создания пользователя. Правила безопасности применяются только к данным, считываемым и записываемым непосредственно в Cloud Firestore (или в базу данных в реальном времени, или в облачное хранилище) с мобильного или веб-клиента.

Единственное, что вы можете сделать, - это использовать аутентификацию облачных функцийактивируйте для проверки свойств учетной записи после ее создания, затем удалите или деактивируйте учетную запись, если что-то не так.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...