Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs AngularFireAuth没有方法';createUser';_Angularjs_Firebase_Angularfire - Fatal编程技术网

Angularjs AngularFireAuth没有方法';createUser';

Angularjs AngularFireAuth没有方法';createUser';,angularjs,firebase,angularfire,Angularjs,Firebase,Angularfire,我一直在使用AngularFire.5和Firebase(这两个都是我从Bower安装中获得的) 我从筛选代码库开始,一直在努力更新这些方法。到目前为止,一切都很好,我认为一切都很好 我能够初始化$firebaseAuth传入我的firebaseio.comurl。页面加载正常 我正在使用requirejs模块化所有内容,并手动引导 我似乎在挣扎的地方,是知道加载哪些指令,以及何时加载,基于大量的样本和文档,它们都处于不同的完成状态(我完全明白这一点) 我对应用程序的初始化如下所示- defin

我一直在使用AngularFire.5和Firebase(这两个都是我从Bower安装中获得的)

我从筛选代码库开始,一直在努力更新这些方法。到目前为止,一切都很好,我认为一切都很好

我能够初始化
$firebaseAuth
传入我的
firebaseio.com
url。页面加载正常

我正在使用requirejs模块化所有内容,并手动引导

我似乎在挣扎的地方,是知道加载哪些指令,以及何时加载,基于大量的样本和文档,它们都处于不同的完成状态(我完全明白这一点)

我对应用程序的初始化如下所示-

define([
    'angular',
    'angular-route',
    'ui-bootstrap',
    'ui-bootstrap-tpls',
    './controllers/index',
    './directives/index',
    './filters/index',
    './services/index',
    'Firebase',
    'angularFire',
    'Firebase-Auth-Client',
    'Firebase-Simple-Login',
    'underscore'
], function (angular) {
    'use strict';


    return angular.module('app', [
        'app.controllers',
        'app.directives',
        'app.filters',
        'app.services',
        'ngRoute',
        'ui.bootstrap',
        'ui.bootstrap.tpls',
        'firebase'
    ]);
});
  services.factory('fbRef', ['fbUrl', 'Firebase',  function(fbUrl, Firebase) {
      // url can be an array or string
      return function(url, limit) {
         var ref = new Firebase(fbUrl(url));
         if( limit ){
            ref = ref.limit(limit);
         }
         return ref;
      }
   }]);
不确定我的requirejs deps是否需要调整-如简单登录或验证客户端需要firebase?这可能是其中的一部分

另一个问题是,我仍在学习Angularjs,而这可能只是我努力让一切正常运转的一个重大举措

我创建了一个服务来处理所有的身份验证(基于Firebase示例,但尝试从无到有地使用它来掌握所有的窍门)

服务看起来像这样-

   services.factory('authManager', ['$rootScope', 'fbRef', '$firebaseAuth', function($rootScope, fbRef, $firebaseAuth) { 
      //authScopeUtil($rootScope);

      $rootScope.auth = $firebaseAuth(fbRef(),{
        'path' : '/'
      });

      $rootScope.auth = {
         authenticated: false,
         user: null,
         name: null
      };

      // provide some convenience methods to log in and out
      return {
         login: function(providerId) {
            //$firebaseAuth.login(providerId, {scope: 'email'});
            console.log(providerId);
         },

         logout: function() {
            $firebaseAuth.logout();
         },

         createUser: function(data) {
            var email = data.email;
            var password = data.password;
            $firebaseAuth.createUser(email, password, function(error, user){
                 if (!error) {
                   console.log('User Id: ' + user.id + ', Email: ' + user.email);
                 }
            })
         }
      };
   }]);
fbRef看起来像这样-

define([
    'angular',
    'angular-route',
    'ui-bootstrap',
    'ui-bootstrap-tpls',
    './controllers/index',
    './directives/index',
    './filters/index',
    './services/index',
    'Firebase',
    'angularFire',
    'Firebase-Auth-Client',
    'Firebase-Simple-Login',
    'underscore'
], function (angular) {
    'use strict';


    return angular.module('app', [
        'app.controllers',
        'app.directives',
        'app.filters',
        'app.services',
        'ngRoute',
        'ui.bootstrap',
        'ui.bootstrap.tpls',
        'firebase'
    ]);
});
  services.factory('fbRef', ['fbUrl', 'Firebase',  function(fbUrl, Firebase) {
      // url can be an array or string
      return function(url, limit) {
         var ref = new Firebase(fbUrl(url));
         if( limit ){
            ref = ref.limit(limit);
         }
         return ref;
      }
   }]);
也许这需要是新的FirebaseSimpleLogin

当我运行代码时,我得到以下错误-

TypeError: Object function (ref, options) {
      var auth = new AngularFireAuth($q, $t, $i, $rs, $l, ref, options);
      return auth.construct();
    } has no method 'createUser'
我不知道我是否需要$createUser、$firebaseAuth、AngularFireAuth等。到目前为止,似乎没有什么能解决这个错误,并允许我调用
createUser()
函数outline和


抱歉说得太多(这里可能真的很幼稚)-只是不确定还有什么地方可以更改。

对于
$firebaseAuth
来说,预期的用法是创建它的实例,然后调用该对象上的方法:

var auth = $firebaseAuth(ref);
auth.$createUser(...);

正如你在Anant的回答中所看到的,该方法的前缀是$:
auth.$createUser
vs
auth.createUser
。设置auth对象后,我立即覆盖了它,因此完全终止了该函数。我将测试该函数,但我认为这解决了它-谢谢大家!是的-将错误恢复一个小时我知道这一定是愚蠢的事情,但现在很容易在声明中迷失方向。