У меня есть функция, которая делает вызов БД Firebase и возвращает цитату на основе даты. Поскольку данные не читаются сразу, функция возвращается до применения данных. Как я могу добавить закрытие, чтобы избежать этого? Я добавил «отпечатки», чтобы показать, как работает функция.
Спасибо!
func getQuoteFromDate(database: Firestore, dateVal: String) -> String {
var dailyQuoteText = "Quote Text Base"
let dbRef = database.collection("dailyQuotes")
dbRef.whereField("date", isEqualTo: dateVal).getDocuments() { (querySnapshot, err) in
if err != nil {
dailyQuoteText = "Unable to Get Quote"
print("Failed to get the item")
} else {
for document in querySnapshot!.documents {
print("Checking for date " + dateVal)
let quoteVal = document.get("quote") as! String
let authorVal = document.get("author") as! String
dailyQuoteText = quoteVal + "\n\n -" + authorVal
print("Writing the quote " + dailyQuoteText)
}
}
}
print("Returning the quote " + dailyQuoteText)
return dailyQuoteText
}
Вывод:
Возвращение цитаты База текста цитаты
Проверка на дату 2020-04-05
Написание цитаты Вещи лучше всего работают для тех, кто умеет лучше всего работать.