Аутентификация в Firesbase. Вход в iOS для получения подробной информации. - PullRequest
0 голосов
/ 09 ноября 2019

Я только что следовал и правильно добавил следующий учебник в свое приложение. Но я изо всех сил пытаюсь узнать, как «вошедшие» данные о пользователях из базы данных Firestore?

Учебное пособие:

https://youtu.be/1HN7usMROt8

Как только пользователь регистрируется через мое приложение, «Имя», «Фамилия» и «UID» сохраняются в Firestoreбаза данных. Но как только пользователь входит в систему, как я могу получить имя пользователя, которое будет скопировано в ярлык на экране приветствия внутри приложения?

Спасибо

1 Ответ

0 голосов
/ 09 ноября 2019

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

Допустим, ваши пользователи сохранены в коллекции с именем users . Когда пользователь войдет в систему, вы можете получить текущего пользователя следующим образом:

let currentSignInUser = Auth.auth().currentUser!

Если вы принудительно развернете его, убедитесь, что пользователь будет зарегистрирован в .

Когдау вас есть текущий пользователь, вы можете получить его uid, вызвав uid свойство текущего пользователя:

let currentUserID = currentSignInUser.uid

Теперь вы можете запросить этот uid для получения документов из коллекции Firestore users , которые имеют то же самоеЗначение поля UID для текущего зарегистрированного пользователя:

let query = Firestore.firestore().collection("users").whereField("UID", isEqualTo: currentUserID)

Убедитесь, что первый параметр функции whereField() совпадает с именем вашего поля в документах. Поскольку вы упоминаете, что UID сохранен в базе данных, я называю его UID.

Это все для получения информации о вашем текущем пользователе и выполнения запроса из него. Теперь вы можете получить документы из Firestore:

query.getDocuments() { [weak self] (querySnapshot, err) in
        if let err = err {
            print("Error getting documents: \(err)")
        } else {
            if let userInfo = querySnapshot?.documents.first { 
                DispatchQueue.main.async {
                    // Set label text to first name
                    self?.youLabel.text = userInfo["firstName"]
                }
            }
        }
}

Измените ключ userInfo на любое имя, которое вы использовали для хранения имени в Firestore. Например, если вы назвали свое поле документа firstName, тогда userInfo ключ словаря должен быть firstName .

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