CreateUser函数在AngularFire中不起作用-Firebase简单登录?

劳埃德银行

我有以下使用AngularFire的控制器

app.controller("authController", function($scope, $firebaseSimpleLogin){

var ref = new Firebase("https://myapp.firebaseIO.com/");
$scope.auth = $firebaseSimpleLogin(ref, function(error, user){
    if(error){
        console.log(error);
    }
    else if(user){
        console.log(user);
    }
    else{
        console.log("user logged out");
    }
});

// This shows a valid object
console.log($scope.auth);

$scope.createAccount = function(){
    console.log("found me");
    $scope.auth.$createUser($scope.email, $scope.password, function(error, user){
        console.log("something");
        console.log(user);
        if(!error){
            console.log(user);
        }
        else{
            console.log(error);
        }
    });
};

});

当我将$scope.createAccount函数绑定ng-click事件并单击绑定按钮时,console.log("found me")该浏览器将在浏览器中运行,但其中未显示任何其他console.log命令$scope.createAccount

console.log($scope.auth)在设置$scope.createAccount功能之前,我拥有命令显示了已$createUser定义功能的有效对象

我在运行时没有收到任何控制台错误,$scope.createAccount因此我假设调用已“成功”进行。

为什么我可以看到auth对象,但是调用后却没有收到回调$createUser

劳埃德银行

发生这种情况是因为我正在基于JavaScript表示法而不是Angular表示法进行回调。由于我使用的是AngularFire方法(它们的名称与普通JavaScript SDK方法相同,但是$在它们前面带有一个标志),因此我需要使用Angular的$promise方法来处理回调

我变了

$scope.auth.$createUser($scope.email, $scope.password, function(error, user){
    // do things;
});

$scope.auth.$createUser($scope.email, $scope.password)
    .then(function(user){
        // do things if success
    }, function(error){
        // do things if failure
    }); 

和回调工作按预期方式。

上面的例外是香草JSfirebaseSimpleLogin构造函数与Angular$firebaseSimpleLogin构造函数。在普通的JS构造函数上,构造函数上有一些回调,使您可以指定用户登录/注销时脚本应执行的操作。它遵循以下格式:

var auth = new firebaseSimpleLogin(ref, function(error, user){
    if(error){
        // do things if login failure
    }
    else if(user){
        // do things when login succeeds 
    }
    else{
        // do things when user logs out
    }
});

如果您尝试像这样对Angular构造函数执行相同的操作:

$scope.auth = $firebaseSimpleLogin(ref)
    .then(function(user){
        // do things when login succeeds 
    }, function(error){
        // do things when login fails     
    });

您会收到一个错误。Angular构造函数没有回调方法。我猜想这是有目的的,因为有了Angular,您就可以进行数据绑定,并且可以$watch $scope.auth.user根据变量的状态简单地进行更改并在应用中执行操作。$scope.auth.user设置为时null,用户将注销。如果该值设置为以外的其他值null,则用户已登录。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

codeigniter简单登录验证不起作用

来自分类Dev

简单的python登录系统不起作用

来自分类Dev

使用 Jsoup 简单登录不起作用

来自分类Dev

函数中的JS简单函数不起作用

来自分类Dev

函数中的JS简单函数不起作用

来自分类Dev

Javascript 中的 Firebase 云函数。Remove() 函数不起作用

来自分类Dev

我如何记得使用AngularFire和Firebase简单登录的登录用户?

来自分类Dev

简单函数调用在Robot Framework中不起作用

来自分类Dev

简单的Python代码在Zapier Code函数中不起作用

来自分类Dev

简单的JS函数在Play Framework中不起作用

来自分类Dev

教程中的简单 isPrime 函数不起作用

来自分类Dev

使用 Firebase 登录 Google 不起作用

来自分类Dev

Firebase $ save在事件处理程序函数中不起作用

来自分类Dev

简单的jQuery函数不起作用

来自分类Dev

简单的JS函数不起作用

来自分类Dev

简单函数在 for 循环之外不起作用

来自分类Dev

firebase angularfire2 typeahead 查询不起作用

来自分类Dev

简单的自动登录脚本不起作用

来自分类Dev

使用 .txt 的简单 PHP 登录不起作用

来自分类Dev

Firebase(url:“”)函数不起作用

来自分类Dev

Firebase 函数 .onWrite 不起作用?

来自分类Dev

多个 Firebase 函数不起作用

来自分类Dev

Firebase 云函数查询不起作用

来自分类Dev

简单的bash中的if语句不起作用

来自分类Dev

简单的Regex在Perl中不起作用

来自分类Dev

简单的类在C ++中不起作用

来自分类Dev

简单的代码在Chrome中不起作用

来自分类Dev

简单JSON在Ruby中不起作用

来自分类Dev

简单的for循环在Jekyll中不起作用