Я создаю сайт как школьный проект, и я использую Angularjs с Firebase.firebase login google email
Я пытаюсь проверить, находится ли идентификатор пользователя в массиве, но он, похоже, не может правильно сравнивать строки.
Контроллер:
'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>
Как вы можете увидеть страницу HTML делает то же самое сравнение как контроллер, но страницы HTML возвращает правильный ответ, тогда как контроллер не.
спасибо. Это было связано с проблемой. Другая проблема заключалась в том, что «user.UID» возвращался как неопределенный. –