首页 文章

从Firebase获取tableview信息

提问于
浏览
1

我有一个功能来从Firebase获取某些帖子

var posts = NSMutableArray()

    override func viewDidLoad() {
        super.viewDidLoad()
        FIRDatabase.database().reference().child("Likes").child(self.loggedInUser!.uid).observe(.childAdded, with: { (snapshot) in


            self.ID = snapshot.key
            print(self.ID!)
        })


        loadData()

}
   func loadData(){

    FIRDatabase.database().reference().child("books").child(self.ID!).observeSingleEvent(of: .value, with: { (snapshot:FIRDataSnapshot) in

            if let postsDictionary = snapshot .value as? [String: AnyObject] {
                for post in postsDictionary {
                    self.posts.add(post.value)
                }
                self.SoldTableView.reloadData()

            }})


}

现在我收到了错误

FIRDatabase.database().reference().child("books").child(self.ID!).observeSingleEvent(of: .value, with: { (snapshot:FIRDataSnapshot) in

fatal error: unexpectedly found nil while unwrapping an Optional value

1 回答

  • 0

    看起来你强行打开一个可选的(self.ID),它就是nil,这就是为什么它会抛出一个错误 .

    在使用该值之前,您应该安全地打开可选项:

    if let ID = self.ID {
            FIRDatabase.database().reference().child("books").child(ID).observeSingleEvent(of: .value, with: { (snapshot:FIRDataSnapshot) in
    
            if let postsDictionary = snapshot .value as? [String: AnyObject] {
                for post in postsDictionary {
                    self.posts.add(post.value)
                }
                self.SoldTableView.reloadData()
    
            }})
    }
    

    有关选项的更多信息,请参阅此处:What does "fatal error: unexpectedly found nil while unwrapping an Optional value" mean?

相关问题