AngularFireAuth не имеет метода createUser

Я работаю с AngularFire .5 и Firebase (оба я получаю от Bower Install.

Я начал с просмотра базы кода Firereader и работал над обновлением методов. Пока все хорошо, и я думаю, что все загружается нормально.

Я могу инициализировать передачу $firebaseAuth в моем URL-адресе firebaseio.com. Страница загружается нормально.

Я использую requirejs для модуляции всего и загружаю angular вручную.

Где я, кажется, борюсь, так это в том, чтобы знать, какие директивы загружать и когда, основываясь на многочисленных примерах и документах, находящихся в разных состояниях завершения (я полностью это понимаю).

Моя инициализация приложения выглядит так:

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'
    ]);
});

Не уверен, что мои запросы requirejs нужно настроить - например, для простого входа в систему или клиента аутентификации требуется 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 выглядит так -

  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;
      }
   }]);

Может быть, это должно быть new 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() в общих чертах как здесь и здесь.

Извините за многословие (и, возможно, здесь действительно наивное) - просто не знаю, где еще что-то изменить.


person Kelly J Andrews    schedule 31.12.2013    source источник


Ответы (1)


Ожидаемое использование $firebaseAuth заключается в создании его экземпляра и затем вызове методов для этого объекта:

var auth = $firebaseAuth(ref);
auth.$createUser(...);
person Anant    schedule 31.12.2013
comment
И, как вы можете видеть в ответе Ананта, метод имеет префикс $: auth.$createUser vs auth.createUser. - person Kato; 01.01.2014
comment
Я перезаписывал объект авторизации сразу после его установки, поэтому полностью убивал функцию. Я проверю функцию, но я думаю, что это решает - спасибо, ребята! - person Kelly J Andrews; 01.01.2014
comment
Да, теперь ошибка возвращается, как и ожидалось, я знал, что это должно быть что-то глупое, но сейчас легко заблудиться в декларативах и т. Д. - person Kelly J Andrews; 01.01.2014