Vladimir_Denisov
@Vladimir_Denisov
JS (Angular2 & Node) / Python (Django)

Проблемы при работе с сервисами на Angular 2. Как исправить?

Здравствуйте, у меня вопрос по Angular 2

Я разбираюсь с авторизацией для FireBase, но возникла одна проблема
https://pastebin.com/6Ei3K9N6

При вызове функции checkAuthorization() вывод такой:
'reality: true'
'service -> auth = undefined'

Я не могу понять почему так происходит, ведь в обоих случаях я обращаюсь к переменной this.isAuthorized

P.S.: мне просто нужно чтобы при вызове этой функции из компонента значение переменной isAuthorized менялось и возвращалось из функции, чтобы я потом мог использовать это значение в компоненте.
  • Вопрос задан
  • 143 просмотра
Пригласить эксперта
Ответы на вопрос 1
@furrya_black
Проинициализируйте ее при объявлении ( ...boolean = false) и вместо undefined будет false )

На момент console.log('service -> auth =', this.isAuthorized) ваш listener (user) => { if (user) ... еще не срабатывает, тк afAuth: AngularFireAuth еще не стриггерил onAuthStateChanged.

https://firebase.google.com/docs/reference/js/fire...

Засуньте console.log('service -> auth =', this.isAuthorized) в ваш callback в самый конец и посмотрите что будет.

PS: я с ангуляром знаком 1 неделю, с авторизацией для FireBase вообще не сталкивался, просто прочел доку, не пинайте если что)

PS : по логике я так понимаю, что вам нужен subscribe на стэйт в котором хранить isAuthorized, от значения которого будет отталкиваться локига работы других компонентов (рендерить кнопку профиля или кнопки логина/регистрации юзера, доступ к какому-то функционалу и пр)

UPD: ссылку забыл - не забыл, сказывается усталость)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы