给定参数时Firebase查询返回Nil

时间:2017-11-23 16:40:18

标签: swift firebase firebase-realtime-database uicollectionview

我使用此函数返回firebase中数据集中的前9个结果。然后,该数组将从集合视图中填充数据。然而,当我去尝试segue到VC我得到错误“索引超出范围”。

    var userHighlights = [Post]()
func loadUserHighlightPosts(_ userID: String, update: @escaping() -> Void) {
   STORAGE_REF.child(userID).queryOrdered(byChild: "likes").queryLimited(toLast: 9).observeSingleEvent(of: .value, with: { (snapshot) in
        for snap in snapshot.children.allObjects as! [DataSnapshot] {
            let post = Post(postID: snap.key, postData: snap.value as! Dictionary<String,Any>)
            self.userHighlights.insert(post, at: 0)
            update()
        }
        if snapshot.childrenCount == 0 {
            update()
        }
    })
}

但是,当我为当前用户运行相同的功能时,使用不同的引用,一切正常。

    var highlights = [Post]()
func loadCurrentUserHighlightPosts(_  update: @escaping() -> Void) {
    currentUserHighlightHandle = CURRENT_USER_STORAGE_REF.queryOrdered(byChild: "likes").queryLimited(toLast: 9).observe(.value, with: { (snapshot) in
        for snap in snapshot.children.allObjects as! [DataSnapshot] {
            let post = Post(postID: snap.key, postData: snap.value as! Dictionary<String, Any>)
            self.highlights.insert(post, at: 0)
            update()
        }
        if snapshot.childrenCount == 0 {
            update()
        }
    })
}

我正在使用prepareforsegue()来传递函数参数中使用的用户的UID,但应用程序继续崩溃。任何帮助将提前感谢,谢谢!

0 个答案:

没有答案