Выберите пользователя из Firestore - PullRequest
0 голосов
/ 05 июля 2018

Не могу решить проблему: в Firestore есть коллекция пользователей, в которой есть несколько документов с полями (email: «String», имя: «String», пароль: «String»). В textField вводятся адрес электронной почты и пароль, необходимо написать функцию, которая выбирает конкретного пользователя из Firestore из введенных данных. Функция entryLogin ():

func entranceLogin() {
    guard let email = emailTextField.text, let password = passwordTextField.text else{
        print("Form is not valid")
        return
    }

    let values1 = [email]
    let values2 = [password]
    var db = Firestore.firestore()
    db.collection("users").getDocuments() { (querySnapshot, err) in
        if let err = err {
            print("Error getting documents: \(err)")
        } else {
            for document in querySnapshot!.documents {
                db = document.value(forKey: "email = '\(values1)' && password = '\(values2)'") as! Firestore
                    print("\(db) => \(document.data())")
            }

             // self.dismiss(animated: true, completion: nil)
            }
        }
    }

1 Ответ

0 голосов
/ 05 июля 2018

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

Auth.auth().signIn(withEmail: email, password: password) { (user, error) in 
//.....
}

Затем в вашей базе данных вместо сохранения пароля просто сохраните UID пользователя для каждого из пользователей. Затем вы можете получить пользователя, используя:

guard let uid = Auth.auth().currentUser.uid else { return }
Firestore.firestore().collection("users").whereField("userID", isEqualTo: uid).getDocuments() { snapshot, error in 
// Do user fetching here
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...