Sur*_*eet 5 ios firebase swift firebase-authentication firebase-realtime-database
我正在研究Firebase项目,我在其中将用户信息存储在表中。现在,我的要求是在表中显示所有用户。这是我的数据库快照
我可以使用从数据库中获取所有用户
if let user = FIRAuth.auth()?.currentUser {
self.ref?.child("Users").observeSingleEvent(of: .value, with: { (snapshot) in
// Get user value
let value = snapshot.value as? NSDictionary
let name = value?["name"] as? String ?? ""
let email = value?["email"] as? String ?? ""
// ...
}) { (error) in
print(error.localizedDescription)
}
}
Run Code Online (Sandbox Code Playgroud)
上面的代码向我返回了包含bod,电子邮件,姓名,性别的用户数组。但是我只想获取电子邮件和用户名。 有没有一种方法只能从数据库中获取指定的字段?
当您读取节点时,您必须检索其全部内容。因此,无法从读取路径时返回的数据中仅获取特定字段。
话虽如此,如果您的用例可行,我建议您对数据进行非规范化,以便查询仅检索您需要的信息。
为此,您可以拥有一个单独的节点,可以将其称为类似Users-NameandEmailList. 现在,在此表中,将用户 uid 作为子键,每个条目应只有一个电子邮件和姓名字段。
像这样的事情:-
Users-NameandEmailList :{
user1key :{
name : "ABC"
email : "abc@abc.com"
},
user2key : {..},
}
Run Code Online (Sandbox Code Playgroud)
我同意这可能会导致数据复制,但如果您想最大限度地减少下载冗余并优化速度,那么这就是正确的选择!
| 归档时间: |
|
| 查看次数: |
2391 次 |
| 最近记录: |