Я пытаюсь прочитать поле из моей базы данных Firestore Firebase и назначить его глобальной переменной. Тем не менее, переменная всегда кажется переменной. Я проверил много форумов, и все они говорят, что это асинхронная функция. Это смущает меня, и мне нужна помощь с моим конкретным примером c.
func getDropDownOptions(){
let db = Firestore.firestore()
let user = Auth.auth().currentUser
let Uid = user!.uid
db.collection("users").whereField("uid", isEqualTo: Uid).getDocuments { (snapshot, error) in
if error != nil {
print(error!)
} else {
for document in (snapshot?.documents)! {
if let data1 = document.data()["int1"] {
self.int1 = data1 as! String
if let data2 = document.data()["int2"] {
self.int2 = data2 as! String
if let data3 = document.data()["int3"] {
self.int3 = data3 as! String
if let data4 = document.data()["int4"] {
self.int4 = data4 as! String
if let data5 = document.data()["int5"] {
self.int5 = data5 as! String
}
}
}
}
}
}
}
}
}
int1 - int5 уже объявлены как переменные. Когда я пытаюсь распечатать их после вызова этой функции, они просто возвращают значение по умолчанию, которое я для них установил.
Я абсолютно не знаю, в чем проблема. Пожалуйста, помогите!