Ошибка типа: $ firebaseAuth не является функцией

0

Я просто дал AngularFire выстрел, и я получаю ошибку.

Вот что я имею в своем index.html:

  <!-- Angular  -->
  <script src="bower_components/angular/angular.min.js"></script>

  f<!-- Firebase -->
  <script src="https://www.gstatic.com/firebasejs/3.3.0/firebase.js"></script>

  <!-- AngularFire -->
  <script src="https://cdn.firebase.com/libs/angularfire/2.0.2/angularfire.min.js"></script>

  <script>
    // Initialize
    var config = {
      apiKey: "mykey",
      authDomain: "mydomain",
      databaseURL: "myurl",
      storageBucket: "mybucket",
    };
    firebase.initializeApp(config);
  </script> 

Вот мой основной модуль приложения:

angular.module('myApp', [
    'firebase',
    'home',
    'login_modal',
    'navbar',
    'ngAnimate',
    'ui.bootstrap',
    'ui.router'
]);

Вот модуль, который я пытаюсь использовать AngularFire с:

angular.module('login_modal', [
    'firebase'
])

И вот его контроллер, используя Angular UI Bootstrap modal (код AngularFire находится на полпути вниз):

// This just creates the modal instance
angular.module('login_modal').controller('login_modal_controller', function ($rootScope, $uibModal, $log) {
  var $ctrl = this;

  $ctrl.animationsEnabled = true;

  $rootScope.open_login_modal = function (size) {
    var modalInstance = $uibModal.open({
      animation: $ctrl.animationsEnabled,
      ariaLabelledBy: 'modal-title',
      ariaDescribedBy: 'modal-body',
      templateUrl: 'myModalContent.html',
      controller: 'ModalInstanceCtrl',
      controllerAs: '$ctrl',
      size: size,
      resolve: {
        sign_up: function () {
          return $ctrl.sign_up;
        }
      }
    });
  };
});


angular.module('login_modal').controller('ModalInstanceCtrl', ['$scope', '$firebaseAuth', function($uibModalInstance, $scope, $firebaseAuth) {
  var $ctrl = this;

  $ctrl.sign_up = true;
  $ctrl.email = '';
  $ctrl.password = '';
  $ctrl.school = '';

  // *** error is here: error at $ctrl.auth (login_modal.controller.js:41)
  $ctrl.auth = function(){
    var auth = $firebaseAuth();

    $ctrl.firebaseUser = null;
    $ctrl.error = null;

    if($ctrl.sign_up){
            auth.$createUserWithEmailAndPassword($ctrl.email, $ctrl.password)
            .then(function(firebaseUser){
            alert("User " + firebaseUser.uid + " created successfully!");
        })
        .catch(function(error) {
            alert("Error: ", error);
        });
    }

    else {
      auth.$signInWithEmailAndPassword($ctrl.email, $ctrl.password)
      .then(function(firebaseUser){
        alert("Signed in as:", firebaseUser.uid);
      })
      .catch(function(error) {
        alert("Authentication failed:", error);
      });
    }    
  };

  $ctrl.cancel = function(){
    $uibModalInstance.dismiss('cancel');
  };
}]);

Обратите внимание, что это работало, когда вы делали это с помощью Vanilla Firebase.

  • 0
    Вы не вызываете $firebaseAuth ; вы просто присваиваете его свойству auth . Вам нужно позвонить .
  • 0
    @cartant Правильно, извините, я пропустил это и обновил свой пост. Это все еще дает мне ошибку. Просто чтобы уточнить, вы имеете в виду, что это должно быть var auth = $firebaseAuth() , правильно?
Показать ещё 2 комментария
Теги:
firebase
firebase-authentication
angularfire

1 ответ

0

Пожалуйста, см. Комментарий от @cartant. Параметры для моей встроенной функции конструктора были неверными.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню