我正在尝试tp从firebase中提取所有用户帖子,以基于相对于当前用户位置的帖子位置填充一个TableView。
我编写了一个方法来确定用户与firebase中存储的帖子位置之间的距离。
*我修改了该方法以封装所有填充的tableview数据;但是,它仍然没有找到“userLocation”的值*
func populateTableView() {
let userId = Auth.auth().currentUser?.uid
Database.database().reference().child("posts").child(userId!).observeSingleEvent(of: .value, with: { (snapshot) in
let data = snapshot.value as? [String: AnyObject]
let postLocation = data!["userLocation"] as? CLLocation
let distanceFromPost: CLLocationDistance = self.locationManager.location!.distance(from: postLocation!)
if self.metersInTwentyFiveMiles > distanceFromPost {
self.inRangeOf = true
Database.database().reference().child("posts").observe(.value, with: { (snapshot) in
if let snapshot = snapshot.children.allObjects as? [DataSnapshot] {
self.posts.removeAll()
for data in snapshot {
print(data)
if let postDict = data.value as? [String: AnyObject] {
let key = data.key
let post = Post(postKey: key, postData: postDict)
self.posts.append(post)
}
}
self.tableView.reloadData()
}
}, withCancel: nil)
} else {
self.inRangeOf = false
print("no posts nearby")
}
})
}
现在在viewDidLoad中,我只调用了populateTableView函数
self.populateTableView()
我从模拟器的确切位置在firebase中存储了许多帖子,只是没有在函数中获取它们。
firebase中的数据结构如下:
-posts
-L922cw8LC2fpxLI1zZH
imageUrl:
likes:
userImg:
userLocation:
username:
有人能帮我吗?populateTableView方法是否不能从正确的子节点读取?