Прежде всего, onAuthStateChanged()
является прослушивателем событий, как вы упомянули, поэтому подписываться на него каждый раз, когда вызывается метод getToken()
, не является хорошей идеей.
I не верьте, что можно создать одну функцию «magi c» для достижения того, что вы хотите.
Я понимаю, что вы ищете способ «подождать», пока токен firebase получит значение , но нет, это невозможно, потому что, если состояние пользователя отключено, событие не будет инициировано, пока он не войдет в систему, поэтому обещание не имеет смысла. Если бы такое обещание существовало, оно было бы неразрешимым навсегда, если бы пользователю просто не хотелось входить в систему.
Вот почему вместо обещания у нас есть прослушиватель событий. Как сказал другой ответчик, лучший способ - действовать в соответствии с фактическим событием. Например, вы можете транслировать сообщение по всему приложению, установить глобальное состояние и т. Д. c. которые, в свою очередь, можно прослушивать и использовать в соответствующих компонентах.