从 Firebase 获取 tableview 信息

Posted

技术标签:

【中文标题】从 Firebase 获取 tableview 信息【英文标题】:get tableview information from Firebase 【发布时间】:2017-10-25 01:18:45 【问题描述】:

我有一个从 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

致命错误:在展开可选值时意外发现 nil

【问题讨论】:

***.com/questions/40459460/…的可能重复 某些值是非字符串属性,而您只转换为字符串,我敢打赌 Price 是 Firebase 数据库中的浮点或整数值,cell.Price.text = (post["Price"] as! NSString).doubleValue 可能会解决问题 @KarloA.López 不,那没用 你所有的值实际上都是字符串? cell.Price.text = "\(post["Price"])" 尝试将数据显示为附加文本 @KarloA.López 我改变了我的问题,但我仍然遇到问题 【参考方案1】:

您似乎是在强制解开一个可选的 (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?

【讨论】:

现在我没有收到任何错误,我的表格视图中也没有显示任何内容,所以我不确定如何从那里开始。这就是我想要完成的;我有一个名为 like 的节点,在该节点中,有登录用户喜欢的帖子 ID。我想获取这些 ID 并进入书籍节点,查找它们并将它们显示在我的表格视图中。

以上是关于从 Firebase 获取 tableview 信息的主要内容,如果未能解决你的问题,请参考以下文章

使用 firebase 连接到 Tableview 的搜索栏

从 Firebase 获取特定的 .childrenCount

无法从 Firebase 获取图像到表视图 [关闭]

如何初始加载 UITableView 然后观察 Firebase 节点以更改在 Swift 中刷新 tableview?

从 Firebase 存储中删除 tableview 图像

尝试从firebase数据库显示图像到tableview [重复]