ios - 我想从 Firebase 中删除帖子并刷新 CollectionView
问题描述
我正在 Swift (iOS) 中创建一个社交媒体应用程序,我试图让用户删除一张照片,然后拉动刷新。照片从firebase中删除,但是当我拉刷新时,它不会刷新数据。我正在尝试使该应用程序像 Facebook 一样。此代码用于用户的个人资料。
这是我的代码:
override func viewDidLoad() {
super.viewDidLoad()
var userr = User()
fetchPosts()
refresher.addTarget(self, action:
#selector(ProfileViewController.refreshStream(sender:)),
for: UIControl.Event.valueChanged)
collectionview.addSubview(refresher)
self.collectionview.reloadData()
}
@objc func refreshStream(sender: UIRefreshControl) {
refetchPosts()
print("refresh")
collectionview.reloadData()
refresher.endRefreshing()
}
func fetchPosts(){
let ref = FIRDatabase.database().reference()
ref.child("users").queryOrderedByKey().observeSingleEvent(of: .value, with: { snapshot in
let users = snapshot.value as? [String : AnyObject]
for (_,value) in users! {
if let uid = value["uid"] as? String {
if uid == FIRAuth.auth()?.currentUser?.uid {
self.following.append(FIRAuth.auth()!.currentUser!.uid)
ref.child("posts").queryOrderedByKey().observeSingleEvent(of: .value, with: { (snap) in
let postsSnap = snap.value as! [String : AnyObject]
for (_,post) in postsSnap {
if let userID = post["userID"] as? String {
for each in self.following {
if each == userID {
let posst = Profile()
if let author = post["author"] as? String, let likes = post["likes"] as? Int, let pathToImage = post["pathToImage"] as? String, let postID = post["postID"] as? String, let date = post["date"] as? String {
posst.author = author
posst.likes = likes
posst.pathToImage = pathToImage
posst.postID = postID
posst.userID = userID
posst.date = date
self.posts = self.posts.sorted { $0.date > $1.date}
self.posts.append(posst)
}
}
}
self.collectionview.reloadData()
}
}
})
}
}
}
})
ref.removeAllObservers()
}
解决方案
推荐阅读
- firebird - 如何将 Firebird 数据库与 Knime 连接?
- php - 如何在实时搜索栏中创建可点击的搜索结果
- elasticsearch - 删除 Elasticsearch 中除一个/一些之外的所有索引?
- kubernetes - gcloud config set container/cluster cluster_name 的目的是什么?
- sql-server - SSRS 报告报表设计器
- python - 检查 Python 中的空列
- javascript - OnClick 操作不起作用
- postgresql - 在 TSV 中使用 VARCHAR 数组
- google-play - Google Play 上的应用版本
- r - 替换文本中的表情符号