【问题标题】:Getting the user ID of the created user获取创建用户的用户ID
【发布时间】:2015-01-26 18:23:01
【问题描述】:

我在我的 Angular 应用程序中使用 angularfire 作为后端,但在提取刚刚创建的最后一个帐户的用户 ID 时我需要帮助。

下面是数据库中“登录和身份验证”部分的图像,这是用户 ID 所在的位置。

这是使用用户通过注册表单输入的电子邮件和密码创建新用户的功能。 (user 是一个来自验证函数的对象,该函数在此之前运行)。

$scope.registerNewUser = function(user) {

    var ref = new Firebase("https://pie-shop.firebaseio.com/");
        ref.createUser({
            email    : user.email,
            password : user.password
        }, function(error) {
            if (error === null) {
                $('#error-message').show().html('Success!').css({color: 'limegreen'});
            }
            else {
                $('#error-message').show()
                .html('Something went wrong when trying to create your account, please try again later')
                .css({color: 'red'});
            } 
        });
},
$scope.storeUserInfo = function(user, userID) {

    var newUser = new Firebase('https://pie-shop.firebaseio.com/' + userID);
}

所以我需要做的是,最好在function(error) if 语句中,获取新创建帐户的用户 ID,并以用户 ID 作为参数调用 storeUserInfo 函数,以便我可以使用它存储用户输入的其他信息。

通过简单地使用$push 将信息存储在数据库中,我无法将用户 ID 与key 匹配以获取相应的信息,因为 Firebase 在推送时会生成唯一键数据进入数据库。 (或者即使使用推送也有聪明的方法吗?如果是这样,请告诉我)。

【问题讨论】:

  • 不要在控制器中进行 DOM 操作!
  • 我稍后会更改。

标签: angularjs object firebase angularfire


【解决方案1】:

来自Firebase docscreateUser

onComplete 函数

创建用户帐户时将调用的回调函数。失败时,第一个参数将是一个指示失败的 Error 对象,带有机器可读的代码属性。成功时,第一个参数将为空,第二个参数将是一个包含新创建用户属性的对象,包括 uid

(强调我的)

所以,这样做:

var ref = new Firebase("https://pie-shop.firebaseio.com/");
ref.createUser({
    email    : user.email,
    password : user.password
}, function(error, user) {
    if (error === null) {
        console.log(user);
    }
    else {
        // deal with error
    } 
});

【讨论】:

  • 确保您使用的是最新的 SDK。这个参数是在 2.1.0 左右添加的。
  • @Kato 感谢您的评论,在 2.0.4 上,所以一开始没有用,但现在可以了 :)
【解决方案2】:

tutorial(部分:使用服务验证用户)中,您将执行此操作。您注册一个用户并立即登录。然后将用户对象存储在$scope.user 中。您可以使用 $scope.user.userId 从 firebase 获取用户 ID(或 console.log 以找到正确的值)。希望能帮助到你。顺便说一句:学习 Angular 和 Firebase 的好教程。

【讨论】:

  • 为教程添加书签,以便我有时间阅读它,谢谢 :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-04-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-02-16
相关资源
最近更新 更多