我正在为我的webapp注册和登录功能。
所有注册用户在firebase auth db中都有一封电子邮件和UID。 UID用作firebase实时数据库中的密钥。 firebase实时db中的以下json结构
users
|
|--UID1
|
|---Name:Amanda
|---Surname:Waller
|---age:30
|---email:abc@gmail.com
|--UID2
|
|---Name:MyName
|---Surname:Mysurname
|---age:39
|---email:xyz.aaa@gmail.com
现在我有一个需要访问其他用户数据的管理员用户,例如管理员希望使用电子邮件xyz.aaa@gmail.com搜索和检索用户,但我选择的JSON密钥是UID,是否存在管理员用户根据用户的电子邮件ID获取UID的方法?还是应该重新设计我的数据库?使用电子邮件作为密钥似乎并不直接,因为电子邮件可以包含此问题答案中所述的特殊字符:
答案 0 :(得分:2)
您的数据库结构似乎很适合获取数据。
搜索数据的方法可能有多种。
添加新用户时不要忘记添加childListener
,因此您必须更新本地用户列表
\
firebaseDB
.ref("Users")
.orderByChild("email")
.equalTo("xyz.aaa@gmail.com")
.once('value')
.then((snapshot) => {
//Received Snapshot
})
.catch(er => console.log(JSON.stringify(er)));
在第二种方法中,您需要为firebase数据库规则中的电子邮件值编制索引,并且只有在管理员输入完整的电子邮件ID时才需要进行搜索。
由于