如何修改FirebaseSimpleLogin管理的用户属性?

时间:2013-12-17 17:19:55

标签: firebase firebase-security

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

1 个答案:

答案 0 :(得分:2)

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

例如,在用户进行身份验证并且您的auth对象具有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年12月12日 - 更新 - 以下是过时的

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

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

我讨厌建议使用removeUser / createUser的组合删除旧帐户,创建一个新帐户,并更新您在应用中拥有的任何用户ID关联 - 但我没有看到直接的“changeEmail” “ 方法。删除/创建路由将要求用户再次输入他们的密码 - 尽管这是现在更新登录的一种非常常见的做法。

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

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

查看更新的2.x docs for changeEmail()

相关问题