2

似乎唯一可以更改的是密码(通过auth.changePassword())。如何让用户更改他们的电子邮件地址或显示名称?

4

1 回答 1

2

firebase Auth 对象非常简单,但它会为您提供当用户对您的系统进行身份验证时生成的用户 ID。然后,您将获取此用户 ID 并将其映射到用户位置,您可以在其中存储其他信息,例如显示名称。

例如,在用户通过身份验证并且您的身份验证对象具有 id 值之后,您可以执行以下操作:

new Firebase('https://your_fb_url.firebase.io').child('users/'+id).set({email: email, name: name}, function(err) {})

您希望在该位置设置读/写规则,只允许经过身份验证的用户查看和进行更改。就像是:

{
  "rules": {
    "users": {
      "$user": {
        ".read": "$user == auth.uid",
        ".write": "$user == auth.uid",
      }
    }
  }
}

2015 年 6 月 12 日 - 更新 - 以下内容已过时

至于更改实际登录电子邮件(对于 Firebase 简单登录 Web),我不太确定。我知道他们提供了更改密码的方法,但我还没有看到任何有关更改登录/电子邮件方法的文档。

firebase 简单密码的底层代码似乎不包含任何更改与帐户关联的登录电子邮件地址的方法。changePassword 方法最终使用电子邮件、旧密码和新密码对 /auth/firebase/update 执行 jsonp 调用。

我不建议使用 removeUser/createUser 的组合来删除旧帐户,创建一个新帐户,并更新您在应用程序中拥有的任何用户 ID 关联 - 但我没有看到简单的“changeEmail”方法。删除/创建路线将要求用户再次输入他们的密码 - 尽管无论如何这是更新登录名的一种非常普遍的做法。

2015 年 6 月 12 日 - 更新 - 新 API

Firebase 已从 Firebase 简单登录作为一个单独的模块转移,现在核心 Firebase 2.x 库具有与身份验证相关的方法。包括更改用于 authWithPassword 方法的电子邮件帐户的方法。

请参阅更新的 2.x 文档以了解 changeEmail()

于 2013-12-18T18:08:15.397 回答