Angularjs $rootScope不工作-值未出现在视图中

Angularjs $rootScope不工作-值未出现在视图中,angularjs,firebase,Angularjs,Firebase,我正在关注Lynda.com使用angularjs构建数据驱动的应用程序 authentication.js已为$rootScope.currentUser分配了Firebase中用户的值,并在index.html中显示{{currentUser.firstname}。用户已登录,Firebase中的值正确,但页面上未显示任何内容 authentication.js myApp.factory('Authentication', function($firebase, $firebaseAu

我正在关注Lynda.com使用angularjs构建数据驱动的应用程序

authentication.js已为$rootScope.currentUser分配了Firebase中用户的值,并在index.html中显示{{currentUser.firstname}。用户已登录,Firebase中的值正确,但页面上未显示任何内容

authentication.js
myApp.factory('Authentication', function($firebase,
  $firebaseAuth, $routeParams, $rootScope, $location, FIREBASE_URL) {

  var ref = new Firebase(FIREBASE_URL);
  var auth = $firebaseAuth(ref);

  auth.$onAuth(function(authUser){
    if(authUser) {
        var user = new Firebase(FIREBASE_URL + '/users/' + authUser.uid);
        $rootScope.currentUser = user;

        console.log("logged in as:", authUser.uid);
        //console.log($scope.currentUser);
    }else{
        console.log("logged out");
        $rootScope.currentUser = '';
    }
  });

  //Temporary object
  var myObject = {

    login: function(user) {
      return auth.$authWithPassword({
        email: user.email,
        password: user.password
      }); //authWithPassword
    }, //login

    register: function(user) {
      return auth.$createUser({
        email: user.email,
        password: user.password
      }).then(function(regUser) {
        var ref = new Firebase(FIREBASE_URL+'users');
        var firebaseUsers = $firebase(ref);

        var userInfo = {
          date : Firebase.ServerValue.TIMESTAMP,
          regUser : regUser.uid,
          firstname: user.firstname,
          lastname : user.lastname,
          email: user.email
        }; //user info

        firebaseUsers.child(regUser.uid).set(userInfo);
      }); //promise
    } //register

  }; //myObject
  return myObject;
}); //myApp Factory

index.html
<!doctype html>
<html lang="en" ng-app="myApp">
<head>
  <meta charset="UTF-8">
  <title>Angular Data</title>
  <meta name="viewport" content="width=device-width, user-scalable=no">
  <link rel="stylesheet" href="css/style.css">
  <script src="js/lib/angular/angular.min.js"></script>
  <script src="js/lib/angular/angular-animate.min.js"></script>
  <script src="js/lib/angular/angular-route.min.js"></script>

  <script src="https://cdn.firebase.com/js/client/2.2.2/firebase.js"></script>

  <script src="https://cdn.firebase.com/libs/angularfire/1.0.0/angularfire.min.js"></script>

  <script src="js/app.js"></script>
  <script src="js/controllers/meetings.js"></script>
  <script src="js/controllers/registration.js"></script>
  <script src="js/services/authentication.js"></script>
</head>
<body>
    <header>
        <nav class="cf" ng-include="'views/nav.html'">

        </nav>
    </header>
<div class="page">
    <div class="userinfo" ng-show="currentUser">
    <span class="userinfo">Hi {{ currentUser.firstname }}</span>
 </div>   
  <main class="cf" ng-view>

  </main>
</div>
</body>
</html>
尽管Firebase有用户/

simplelogin:11
 date: 
 email: 
 firstname: 
 lastname: 
 regUser: 
我只能从authUser和currentUser访问uid。
所以我可以将currentUser.uid传递给视图,但不能传递给currentUser.firstname!我是不是患了大脑融化症!我缺少$firebaseObject,如下所示:

if(authUser) {

        var ref = new Firebase(FIREBASE_URL + '/users/' + authUser.uid);
      var user = $firebaseObject(ref);
        $rootScope.currentUser = user;

    }else{

        $rootScope.currentUser = '';
    }
作为Firebase的新手,发现他们最近用重命名的$firebaseObject服务替换了$asObject。我删除了$asObject而没有替换$firebaseObject。
所以现在它起作用了,我很高兴

我从未使用过FireBase,但从简要查看他们的文档来看,您必须实际设计用户对象类型,告诉FireBase它们是什么,然后自己插入它们
if(authUser) {

        var ref = new Firebase(FIREBASE_URL + '/users/' + authUser.uid);
      var user = $firebaseObject(ref);
        $rootScope.currentUser = user;

    }else{

        $rootScope.currentUser = '';
    }