AngularFire,如何通过uid在页面上显示姓名/电子邮件?

时间:2016-03-19 23:43:58

标签: javascript angularjs firebase angularfire

正如主题所说,我该如何在页面上打印出来? 关于这一点的很多其他主题都是使用SimpleLogin,现在已经弃用了,因此没有多少使用它,因此另一个线程......

我有一个注册功能(名称+电子邮件+密码)和登录功能(电子邮件+密码),经过身份验证后,我希望页面打印"欢迎{{user.name}}"例如。 我觉得这是一项非常基本的任务,但我无法完成它。当authed并重定向到dashboard.html(那里有路由的一些问题,但是另一个帖子,暗示提示) - 它只打印出uid。

它看起来像这样:

app.controller('dashController', ['currentAuth', '$scope', '$firebaseArray', '$firebaseAuth', '$rootScope', 'Auth', '$location',
  function(currentAuth, $scope, $firebaseArray, $firebaseAuth, $rootScope, Auth, $location){
    var ref = new Firebase('https://url.firebaseio.com');
    $scope.auth = $firebaseAuth(ref);
    $scope.user = $firebaseArray(ref);


    var authData = $scope.auth.$getAuth();

    $scope.id = authData.uid;
}]);

和html:

<span>Welcome {{id}}</span>

所有的uid都存储在/ users / uid / name + email + pass中。 谢谢!

1 个答案:

答案 0 :(得分:2)

这没有任何意义:

$scope.user = $firebaseArray(ref);

您的数据库不是数组,因此尝试将其作为数组绑定到作用域并没有帮助任何人。

您更有可能希望将特定用户的配置文件数据绑定到范围:

$scope.user = $firebaseObject(ref.child('users').child(authData.uid));

然后在你看来:

<span>Welcome {{user.name}}</span>

我建议您从头到尾遵循AngularFire programming guide。这样做应该可以使$firebaseArray()$firebaseObject()之间的区别更加明确。