我使用此函数返回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,但应用程序继续崩溃。任何帮助将提前感谢,谢谢!