我正在开发一个应用程序,其中用户具有特定数量的帖子。为了跟踪用户的帖子数量,FirebaseDatabase中有一个存储该数字的值。
我需要在加载收藏视图之前检索此值。
这是我从Firebase检索此值的方式:
var count = 0
private func retrievePostCount() {
let userID = Auth.auth().currentUser?.uid
ref.child("users").child(userID!).observeSingleEvent(of: .value, with: { (snapshot) in
// Get user value
let value = snapshot.value as? NSDictionary
let count = value?["postCount"] as? Int ?? 0
self.count = count
}) { (error) in
print(error.localizedDescription)
}
}
我在加载视图之前调用此方法。
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
retrievePostCount()
}
检索数据后,在分配单元格编号时调用计数。
func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
return self.count
}
这是数据库的结构。
我认为问题可能在于视图在检索数据之前加载得太快。我该如何解决?
答案 0 :(得分:1)
设置了从api检索到的$fliesid_in_store = $_REQUEST['fliesid_in_store'];
echo $res = preg_replace("/[^a-zA-Z]/", "", $fliesid_in_store);
之后,您需要按以下方式重新加载count
,以便从collectionView
方法返回新的计数,
numberOfItemsInSection