我有一个Firebase数据库,通过该数据库,我试图通过5个不同的视图控制器(由UIPageViewController控制)按年龄来显示5个随机用户(包括他们的姓名和电子邮件)。
我创建了查询代码以按年龄显示用户。代码如下:
func findoutinfo(){
let usersRef = Database.database().reference().child("Users")
let query = usersRef.queryOrdered(byChild: "Age").queryEqual(toValue: "21")
query.observeSingleEvent(of: .value, with: { snapshot in
for child in snapshot.children {
let childSnap = child as! DataSnapshot
let dict = childSnap.value as! [String: Any]
let name = dict["Name"] as! String
let email = dict["email"] as! String
print(childSnap.key, name, email)
}
})
}
但是,我还没有找到一种随机选择5个用户并将其信息显示在各个页面上的方法。确保所有这些都不相同。
答案 0 :(得分:1)
很不幸。 Firebase无法为您提供一个随机选择孩子的简单解决方案。根据使用情况,您可能必须采用不同的方法。
如果“用户”列表不大,则可以获取所有用户,将其放入数组中,然后随机选择5个。像这样:
var selectedUsers = [[String: Any]]()
let qtyOfUsersToSelect = 5
var users = getUsersArrayFromFirebase() // Made up function where you should fetch the Users.
for i in 1...5 {
selectedUsers.append(users.remove(at: Int.random(0..<users.count)))
}
如果您希望数据库用户很大,那么我建议您使用Firebase函数并在后端进行处理。