Javascript firebase登录谷歌电子邮件

Javascript firebase登录谷歌电子邮件,javascript,angularjs,firebase,Javascript,Angularjs,Firebase,我正在建立一个网站作为一个学校项目,我正在使用Firebase的Angularjs 我试图检查用户id是否位于数组中,但它似乎无法正确比较字符串 控制员: 'use strict'; var AboutController = angular.module('AboutController', []); AboutController.factory('Auth', ['$firebaseAuth', function($firebaseAuth) { var ref = new Fir

我正在建立一个网站作为一个学校项目,我正在使用Firebase的Angularjs

我试图检查用户id是否位于数组中,但它似乎无法正确比较字符串

控制员:

'use strict';

var AboutController = angular.module('AboutController', []);

AboutController.factory('Auth', ['$firebaseAuth', function($firebaseAuth) {
  var ref = new Firebase('https://MYURL.firebaseio.com/');
  return $firebaseAuth(ref);
}]);

AboutController.controller('AboutCtrl', function ($scope, $firebase, Auth) {

  var usrRef = new Firebase('https://MYURL.firebaseio.com/Users');
  $scope.users = $firebase(usrRef).$asArray();

  $scope.auth = Auth;
  $scope.account = $scope.auth.$getAuth();
  var id = $scope.account.google.id;
  var check = false;
  for(var user in $scope.users){
    if(user.UID === id){
      check = true;
      break;
    }
  }
  $scope.isUser = check;
  if($scope.isUser !== true){
    $scope.users.$add({
      UID: $scope.account.google.id,
    });
  }
});
html页面:

<div ng-controller="AboutCtrl">
  <div>
    <h3>User Data</h3>
    <p>{{account.google.id}}</p>
    <pre>{{account|json}}</pre>
    <p>User has logged in before:{{isUser}}</p>
    <pre>{{users|json}}</pre>
    <div>
      <p>This compares the current UID's in the db to the current user's uid</p>
      <div ng-repeat='usr in users'>
        <p>{{usr.UID}} {{usr.UID == account.google.id}}</p>
      </div>
    </div>
  </div>
</div>

用户数据
{{account.google.id}

{{account | json} 用户已在以下时间之前登录:{{isUser}

{{users | json}} 这会将数据库中的当前UID与当前用户的UID进行比较

{{usr.UID}{{usr.UID==account.google.id}


如您所见,html页面与控制器进行了相同的比较,但html页面返回了正确的答案,而控制器没有返回正确的答案。

$scope.account在您未经过身份验证时为空。在这里使用$onAuth可能更好

$onAuth();侦听对客户端身份验证状态的更改。当客户端的身份验证状态更改时,将触发提供的回调

$scope.users=$firebase(usrRef)。$asArray()是异步的。当您在$scope.user上循环时,此时它可能为空。您应该等到从Firebase接收到数据。签出$loaded()

$loaded();返回从Firebase下载初始阵列数据时解析的承诺。承诺解析为数组本身


非常感谢。这是问题的一部分。另一个问题是“user.UID”返回时未定义。