我使用Firebase作为我的IOS应用的数据库。我想从数据库中检索几个用户的数据。
以下是我的数据库组织:
用户
...
我想检索数据库所有用户的位置数据。
基本快照功能
ref.child("Users").child("").child("Location").observe(.value, with: {
snapshot in
for Location in snapshot.children {
self.locationsArray.append((Location as AnyObject).key)
}
print(self.locationsArray)
})
我的问题是:即使我没有指定(我也不能)作为名称的用户ID,我如何检索所有Locations
孩子以前?感谢。
答案 0 :(得分:2)
这是一个代码片段,用于检索和打印每个用户的uid及其位置。
我们可以使用.query
进一步优化我们的结果let usersRef = ref.child("users")
usersRef.observeSingleEvent(of: .value, with: { (snapshot) in
for snap in snapshot.children {
let userSnap = snap as! FIRDataSnapshot
let uid = userSnap.key //the uid of each user
let userDict = userSnap.value as! [String:AnyObject] //child data
let location = userDict["Location"] as! String
print("key = \(uid) is at location = \(location)")
}
})
答案 1 :(得分:1)
Firebase无法仅检索位置。 有很多选择,但我看到两个更适合你的情况:
第二种选择是:
因此,每次更改主阵列时,您都需要更改它。