Swift 3 Firebase - 从 ID 数组中返回拥有 ID 的所有用户



假设在前端,我有一个用户ID数组,从另一个数据源中提取,即:

let userIdArray = ["123456", "123457", "123458", "123459"]

我需要查询我的 Firebase 数据库,返回在该数组中具有其中一个 ID 的所有用户。我将如何做到这一点?是否必须为每个 ID 创建新查询?这可能会过于繁重,因为数组中的用户数量可能多达 20-30 个 ID。

以下代码将以最快的方式循环访问 userID,因为它不会等到 1 次下载完成。我创建了一个调度组,在下载数据之前进入该组,并在数据下载完成后离开该组。之后,group.notify 会在循环结束时通知您。

func getUserIds() {
let userIdArray = ["123456", "123457", "123458", "123459"]
let group = DispatchGroup()
for singleUser in userIdArray{
group.enter()
ref.child("insertpath/(singleUser)").observeSingleEvent(of: .value, with: { (snapshot) in
// Get user value
let value = snapshot.value as? NSDictionary
group.leave()
}) { (error) in
print(error.localizedDescription)
group.leave()
}
}
group.notify(queue: .main) {
print("loop finished")
}
}
}

相关内容

最新更新