Мы пытаемся выполнить аутентификацию с помощью customToken для Firebase - это работало до того, как мы перешли в EmberCLI, когда мы инициировали эти адаптеры Firebase на более позднем этапе выполнения приложений.Где выполнить аутентификацию с помощью customToken с помощью адаптеров
Сейчас пытается инициировать authCustomToken на более ранней стадии в адаптере с потоком следующим образом:
- Инициировать адаптер
- Крюк на «INIT» и запросить маркер из бэкэндом
- Когда маркер получил - authWithCustomToken
код выглядит так же, как это:
import DS from 'ember-data';
/**
* CartAdapter
* @class adapters.Cart
* @extends DS.FirebaseAdapter
*/
export default DS.FirebaseAdapter.extend(ajax, {
firebase: new Firebase('https://firebasehost.com'),
pathForType: function() {
return 'carts/' + this.get('sessionService').get('userId');
},
initAdapter: function() {
this.ajaxRequest('backendhost/firebase/').then(function(data) {
var ref = new Firebase('https://firebasehost.com');
ref.authWithCustomToken(data.token);
});
}.on('init')
});
Как наилучший способ приблизиться к этому?
Итак, все работает? – givanse
Нет, не так, как я реорганизовал выше. В документации Firebase говорится, что вам нужно только аутентифицировать один экземпляр «Firebase», и все они будут аутентифицированы. В приведенном выше случае кажется, что адаптер инициирован без аутентификации, а затем аутентифицируется. Это, по-видимому, приводит к тому, что все элементы, загруженные из «телег», не аутентифицированы, и любая попытка изменения завершится с ошибкой. Скорее всего, нам нужно проверить подлинность первого экземпляра firebase, но я не могу этого сделать, поскольку свойство firebase требуется при создании адаптера. – hussfelt
Я раньше не использовал Firebase и, возможно, не полностью понял проблему. Однако это похоже на проблему, когда вам нужно настроить X, прежде чем что-либо еще сделать. Вы посмотрели на создание инициализаторов? http://emberjs.com/guides/understanding-ember/dependency-injection-and-service-lookup/#toc_dependency-injection-with-code-register-inject-code – givanse