Вопрос чрезвычайно широкий, и, не зная подробностей, единственный способ решить его - дать общий ответ, в котором конкретно указано, как читать данные из Firestore и сохранять их в переменной, которая будет использоваться позже.
Предположим, ваш Firestore выглядит так
root
users
uid_0
name: "users name"
uid_1
name: "another users name"
и когда приложение загружается, мы хотим прочитать имя пользователя и сохранить его в переменной для вашего вопроса:
переменная для использования в других местах
Вот как это может выглядеть
class ViewController: NSViewController {
var usersName = ""
override func viewDidLoad() {
super.viewDidLoad()
FirebaseApp.configure()
self.db = Firestore.firestore()
let settings = self.db.settings
self.db.settings = settings
self.readUserName()
}
func readUsersName() {
let users = self.db.collection("users")
let thisUser = users.document("uid_1")
thisUser.getDocument(completion: { documentSnapshot, error in
if let error = error {
print(error.localizedDescription)
return
}
let name = documentSnapshot?.get("name") as! String
self.usersName = name
})
}
Код устанавливает Firestore, считывает имя пользователя из документа uid_1 и сохраняет его в переменной, где оно может быть использовано позже.
Предположим, мы хотим позволить пользователю изменить свое имя. Есть 100 способов сделать это; Передав данные через segue, используйте метод делегата или откройте контроллер подробного представления, и, прежде чем он закроется, этот мастер-контроллер прочитает обновленное имя из textField и сохранит данные. Вы можете даже передать пользовательский uid, а затем в подробном viewcontroller прочитать документ через этот uid, а затем обновить его после закрытия. Однако все они выходят за рамки вопроса.