我正在使用Firebase,Firebase的身份验证服务(简单的电子邮件/密码登录)构建应用程序,并以与所述here非常相似的方式存储用户信息。
我的部分功能需要允许根据电子邮件地址查找其他用户。
是否有一种直接的方法可以使用电子邮件查找Firebase定义的uid(即'simpleLogin:9'),而无需迭代所有用户,或者能够实际登录?
答案 0 :(得分:4)
您的users
节点只是Firebase中的常规节点。因此,查找项目的唯一方法是通过节点的名称或节点的优先级。
如果您想坚持使用uid
作为节点名称,可以使用setPriority
或setWithPriority
将电子邮件地址设置为优先级,然后使用{{1}进行过滤}和startAt
。
endAt
但是,如果您只使用简单的电子邮件,则可以考虑通过电子邮件地址直接存储用户:
// save new user's profile into Firebase so we can
// list users, use them in security rules, and show profiles
myRef.child('users').child(user.uid).setWithPriority({
displayName: user.displayName,
provider: user.provider,
provider_id: user.id
}, user.email);
var userRef = myRef.child('users').startAt(user.email).endAt(user.email);
另见: