我正在运行Firebase的.getSingleEventOf
函数以从程序中的数据库读取数据,这是一个异步函数。我将如何使其同步(或使另一个同步功能来容纳代码)?
我试图使用通过函数传递的数据,但是没有用!即使我知道我的数据库中有包含特定字母的数据,它也只返回0个元素。
import Foundation
import Firebase
struct CompeteUserFinderService {
static func findCompetitors(contains letters: String?) -> [String] {
//Make sure there was an input
guard let letters = letters else { return [] }
var usernames = [String]()
//Database reference
let ref = Database.database().reference().child("usernames")
ref.observeSingleEvent(of: .value) { (snapshot) in
//Creates an array of all values in the usernames branch
let value = Array((snapshot.value as! [String: Any]).keys)
usernames = value.map { $0.lowercased() }.filter { $0.contains(letters.lowercased()) }
}
return usernames
}
}