我正在尝试允许登录用户使用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 = '';
}
});
答案 0 :(得分:3)
对象user
未定义,因为它超出了$scope.addIdea() function
的范围。
它仅存在于FirebaseSimpleLogin
调用的回调中。
请参阅此示例Monitoring Authentication以供参考。