【问题标题】:AngularJS Firebase sendEmailVerification not workingAngularJS Firebase sendEmailVerification 不起作用
【发布时间】:2016-10-09 19:33:27
【问题描述】:

我想使用 Firebase 向注册用户发送一封验证电子邮件。

我的注册控制器如下:

app.controller("MyregisterCtrl", ["$scope", "firebase", "$firebaseAuth", "$location", function ($scope, firebase, $firebaseAuth, $location) {

    $scope.signUp = function () {
        var username = $scope.user.email;
        var password = $scope.user.password;


        if (username && password) {
            var auth = $firebaseAuth();
            var user = firebase.auth().currentUser;

            auth.$createUserWithEmailAndPassword(username, password)
            user.sendEmailVerification()
                .then(function () {
                    console.log("User signup success");
                    $scope.errMsg = false;
                    $location.path('/login.signin');
                }).catch(function (error) {
                $scope.errMsg = true;
                $scope.errorMessage = error.message;
            });
        }
    }

}]);

用户在 Firebase 用户数据库中注册。但是我必须在提交按钮上连续单击三次才能收到验证电子邮件。很奇怪。

为什么它不在第一次提交点击时发送?

这是错误截图:

【问题讨论】:

    标签: angularjs firebase firebase-authentication


    【解决方案1】:

    创建用户帐户是一项可能需要一些时间的操作。如果您在操作完成之前致电sendEmailVerification(),您将在屏幕截图中收到错误消息(对于以后的任何问题:请不要发布文字图片,发布实际文字本身)。

    要解决问题,可以通过等待所谓的promise解决,等到账户创建完成:

    auth.$createUserWithEmailAndPassword(username, password)
        .then(function(user) {
            user.sendEmailVerification()
        }).then(function () {
            console.log("User signup success");
            $scope.errMsg = false;
            $location.path('/login.signin');
        }).catch(function (error) {
            $scope.errMsg = true;
            $scope.errorMessage = error.message;
        });
    

    所以这里的顺序:

    1. 创建用户帐户
    2. 一旦成功,发送验证电子邮件
    3. 一旦成功,记录成功并重定向
    4. 如果 1 或 2 失败,则显示错误消息

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-08-25
      • 2015-12-26
      • 1970-01-01
      • 2014-07-15
      • 2017-09-03
      • 2016-02-23
      • 2016-05-11
      • 2013-04-27
      相关资源
      最近更新 更多