所以我目前正在嘗試獲取我的Firebase數據庫中「帖子」的數量,但由於某種原因,它說的金額等於一(這是真的),但然後在調用「postNumber」時重置自身。我也想將數據保存在數組中以備後用,所以我把它全部保存在一個數組中,而不是直接從數據庫中讀取數據,也不存儲任何數據。將FirebaseDataSnapshot添加到數組作爲字符串(Swift 3)
viewDidLoad中()函數
var postNumber = 0
override func viewDidLoad() {
super.viewDidLoad()
updateFeed()
print("PostNumber in ViewDidLoad: \(self.postNumber)") //equals 0
collectionView?.backgroundColor = .white
}
updateFeed功能
func updateFeed(){
let uid = FIRAuth.auth()?.currentUser?.uid
let ref = FIRDatabase.database().reference(fromURL: "https://firebaseio.com/")
ref.child("users").child(uid!).child("Posts").observe(.value, with: { (snapshot) in
for item in snapshot.children{
let snapshotValue = snapshot.value as? NSDictionary
var snapString = String(describing: item)
var snapInt = Int(snapString)
self.postCollection.append(snapString)
let firstName = (snapshot.value as! NSDictionary)["First Person"] as? String
print("SnapShot: \(snapString)") //gives proper data
self.postNumber = self.postCollection.count
print("PostNumber: \(self.postNumber)") //equals 1
print("PostSource: \(self.postCollection)")
}
})
print("Number of Posts (After Adding): \(self.postCollection.count)") //equals 0
collectionView?.reloadData()
}
難道你不能存儲快照本身嗎?快照是不可變的,所以丟失數據應該沒有問題。爲什麼你需要把它變成一個字符串? –
你可以,但它不改變函數後調用數組長度 – Skiddswarmik