javascript - 用户 ID 未发布到 Firebase

标签 javascript angularjs firebase angularfire

我试图让已登录的用户使用他们的 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/

相关文章:

javascript - Angular js ng-禁用

javascript - 单击形状以选择基础形状

javascript - 如何在 angularJS 中配置 View 和 Controller 模块

ios - 如何修复 AppDelegate for Firebase Notifications 中使用的已弃用代码?

javascript - CallThrough注入(inject) spy

javascript - 为什么 Style.Display = None 无法使我的按钮不可见?

angularjs - 模块 'templates' 不可用!在 Angular js 中?

angularjs - 使用 AnugularJS 输出 JSON-LD 以进行结构化数据标记

swift - 在法庭上添加或删除子项的持久性?

ios - 如何从 Firebase httpscallable().call() 中的后端接收 promise ?