Firebase 身份验证服务 - 无需登录即可从电子邮件查找 uid

Mat*_*und 2 javascript firebase firebasesimplelogin

我正在使用 Firebase、Firebase 的身份验证服务(简单的电子邮件/密码登录)构建一个应用程序,并以与此处描述的方式非常相似的方式存储用户信息。

我的部分功能需要允许根据电子邮件地址查找其他用户。

有没有一种简单的方法可以使用电子邮件来查找 Firebase 定义的 uid(即“simpleLogin:9”),而无需迭代所有用户,或者能够实际登录他们?

Fra*_*len 5

您的users节点只是 Firebase 中的常规节点。因此,查找项目的唯一方法是通过节点名称或节点优先级。

如果您想坚持使用 作为节点名称,您可以使用或uid将电子邮件地址设置为优先级,然后使用和进行过滤。setPrioritysetWithPrioritystartAtendAt

  // 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);
Run Code Online (Sandbox Code Playgroud)

但如果您只使用简单的电子邮件,您可能会考虑首先通过电子邮件地址存储用户:

  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);
Run Code Online (Sandbox Code Playgroud)

也可以看看: