Я работаю с 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()
в общих чертах как здесь и здесь.
Извините за многословие (и, возможно, здесь действительно наивное) - просто не знаю, где еще что-то изменить.