我试图让已登录的用户使用他们的 Google ID 向 Firebase 发布标题和描述,但用户 ID 在控制台中给出了未定义的错误。
该错误仅在调用 addIdea() 函数时触发,即发布表单时。表单元素只是标题和描述的 ng-models。
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 = '';
}
});
最佳答案
user
对象未定义,因为它超出了$scope.addIdea() 函数
的范围。
它只存在于FirebaseSimpleLogin
调用的回调中。
看看这个例子Monitoring Authentication供引用。
关于javascript - 用户 ID 未发布到 Firebase,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26132597/