1
我希望能夠通過從存儲在我的數據庫中的密鑰中提取其UID值來列出tableview中的用戶。截至目前,代碼僅獲取數據庫中的第一個值,而不是所有的值。這是獲取申請人的代碼。Firebase Swift 3從一組中獲取多個值
func loadApplicants() {
let usersRef = ref.child("users")
usersRef.observe(.value, with: { (users) in
var resultArray = [UserClass]()
for user in users.children {
let user = UserClass(snapshot: user as! DataSnapshot)
if user.uid == self.job.userID {
let appRef = self.ref.child("jobs").child(self.job.postID).child("applicants")
appRef.queryOrderedByKey().observeSingleEvent(of: .childAdded, with: { (snapshot) in
let sValue = snapshot.value
resultArray.append(user)
})
}
}
}) { (error) in
print(error.localizedDescription)
}
}
這就是我的數據庫看起來像用戶的UID存儲位置。
jobs
"Job ID"
applicants:
-KtLJaQnFMnyI-MDWpys:"8R6ZAojX0FNO7aSd2mm5aQXQFpk1"
-KtLLBFU_aVS_xfSpw1k:"GGqjtYvwSwQw9hQCVpF4lHN0kMI3"
如果我是運行應用程序,它提取UID:「8R6ZAojX0FNO7aSd2mm5aQXQFpk1」 我如何能實現一個for循環或if語句,以確保所有的值取和追加到表視圖
我知道在從AuthService調用fetchApplicants之前我需要一個for循環,因爲它只是獲取一個UID,但我無法確定它會去哪裏。
謝謝。
P.S.這是我曾嘗試
func loadApplicants() {
let jobID = job.postID
let appRef = ref.child("jobs").child(jobID!).child("applicants")
appRef.queryOrderedByKey().observeSingleEvent(of: .childAdded, with: { (snapshot) in
if let applicants = snapshot.value! as? [String:AnyObject] {
for (value) in applicants {
self.authService.fetchApplicants(applicantID: "\(value!)", completion: { (users) in
self.usersArray = users
self.tableView.reloadData()
})
}
}
})
}
但輸出是:
(key: "-KtLLBFU_aVS_xfSpw1k", value: GGqjtYvwSwQw9hQCVpF4lHN0kMI3)
(key: "-KtLJaQnFMnyI-MDWpys", value: 8R6ZAojX0FNO7aSd2mm5aQXQFpk1)