我已经在我的应用程序中实现了 Firebase。我为 Firebase 代码添加了一个额外的类:
import Foundation
import FirebaseDatabase
class FirebaseHelper {
let DATABASE_REF = Database.database().reference()
static var sharedInstance: FirebaseHelper = FirebaseHelper()
private init() {}
func allInformations(completion: @escaping(SneakerModel) -> Void ) {
DATABASE_REF.queryOrdered(byChild: "shoes").observe(.childAdded) { (snapshot) in
guard let dic = snapshot.value as? [String : Any] else {return}
for _ in snapshot.children {
let newShoe = SneakerModel(dictionary: dic, key: snapshot.key)
print("This is", child)
completion(newShoe)
}
}
}
}
print 语句在这种方法中工作正常。但是当我在另一个类中调用这个方法时,我只会得到 nil 值。
var sneakerModel = [SneakerModel]()
func getShoes() {
FirebaseHelper.sharedInstance.allInformations { (post) in
print(post) // printing only nil values
self.sneakerModel.append(post)
self.tableView.reloadData()
}
}