从Firebase数据库中获取特定字段

我正在开发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) } } 

上面的代码返回用户数组与bod,电子邮件,名称,性别。 但我想只获取电子邮件和用户名。 有没有办法从数据库中获取指定的字段?

阅读节点时,您必须检索其整个内容。 因此,无法从读取路径时返回的数据中仅获取特定字段。

话虽如此,如果您的用例可能,我建议您对数据进行非规范化,目的是查询只检索您需要的信息。

为此,您可以拥有一个可以被称为Users-NameandEmailList的单独节点。 现在,在此表中,将用户uids作为子键,每个条目只有一个电子邮件和名称字段。

像这样: –

 Users-NameandEmailList :{ user1key :{ name : "ABC" email : "abc@abc.com" }, user2key : {..}, } 

我同意这可能会导致数据复制,但如果您想最大限度地减少下载冗余并优化速度,那么这就是要走的路!