0

我已经在我的应用程序中实现了 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()
    }
}
4

0 回答 0