2014-10-01 2 views
1

Я пытаюсь разрешить зарегистрированным пользователям публиковать заголовок и описание с их идентификатором Google для Firebase, но идентификатор пользователя дает неопределенную ошибку в консоли.Идентификатор пользователя, не отправляемый в Firebase

Ошибка инициируется только при вызове функции addIdea() при отправке формы. Элементы формы - это просто ng-модели для названия и desc.

var app = angular.module("fluttrApp", ["firebase"]); 

app.controller("fluttrCtrl", function($scope, $firebase) { 

var ref = new Firebase("[forge].firebaseio.com/ideas"); 

     var auth = new FirebaseSimpleLogin(ref, function(error, user) { 
     if (!user) { 
      auth.login('google', { 
       rememberMe: true 
      }); 
     } 
     else { 
      console.log(user.displayName); 
      console.log(user.uid) 

      $scope.displayName = user.displayName; 
      $scope.uid = user.uid; 

     } 

     }); 

var sync = $firebase(ref); 


$scope.ideas = sync.$asArray(); 


$scope.title = ""; 
$scope.desc = ""; 

$scope.addIdea = function(title, desc, uid) { 

$scope.displayName = user.displayName; 
$scope.uid = user.uid; 

$scope.ideas.$add(
    { 
     "title": title, 
     "desc": desc, 
     "user": uid 
    } 
    ); 
//The user id needs to be pulled and we need to post 
//the idea id generated here to the user branch 
$scope.title = ''; 
$scope.desc = ''; 
} 

}); 

ответ

3

Объект user является неопределенной потому, что он находится вне сферы действия $scope.addIdea() function.

Он существует только в обратном вызове FirebaseSimpleLogin.

Посмотрите на этот пример Monitoring Authentication для справки.