用户ID未发布到Firebase

时间:2014-10-01 01:05:52

标签: javascript angularjs firebase angularfire

我正在尝试允许登录用户使用Google ID将标题和说明发布到Firebase,但是用户ID在控制台中发出了未定义的错误。

只有在发布表单时调用addIdea()函数时才会触发错误。表单元素只是标题和描述的ng模型。

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 = '';
}

});

1 个答案:

答案 0 :(得分:3)

对象user 未定义,因为它超出了$scope.addIdea() function的范围。

它仅存在于FirebaseSimpleLogin调用的回调中。

请参阅此示例Monitoring Authentication以供参考。