Полагаю, вы знаете, как работает 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 .