我正在使用Firebase,Firebase的身份验证服务(简单的电子邮件/密码登录)构建应用程序,并以与此处所述非常相似的方式存储用户信息。
我的部分功能需要允许基于电子邮件地址查找其他用户。
有没有一种简单的方法可以使用电子邮件来查找Firebase定义的uid(即'simpleLogin:9'),而不必遍历所有用户或实际上无法登录他们?
您的users
节点只是Firebase中的常规节点。因此,查找项目的唯一方法是按节点名称或按节点优先级。
如果要坚持使用uid
节点名称,可以使用setPriority
或将电子邮件地址设置为优先级setWithPriority
,然后使用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);
但是,如果您仅使用简单的电子邮件,则可以考虑简单地按用户的电子邮件地址存储用户,以以下内容开头:
myRef.child('users').child(user.email).set({
displayName: user.displayName,
provider: user.provider,
provider_id: user.id
});
var userRef = myRef.child('users').child(user.email);
也可以看看:
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句