В моем приложении firebase (Angular) я использую проверку подлинности firebase, чтобы войти в систему через свой профиль Google.В рамках этого процесса пользователь дает мне разрешение на доступ к своей учетной записи gmail (область действия 'https://www.googleapis.com/auth/gmail.compose'
).
После того, как пользователь вошел в систему таким образом, я хочу настроить gav javascript SDK "gapi", чтобычто «вошедший в систему пользователь» - это пользователь, вошедший через firebase auth.Вот где у меня проблемы.
Похоже, мне нужно установить клиентский токен для gapi
sdk, как, например, gapi.client.setToken(userAccessToken)
, и токен должен быть установлен до того, какгени-клиент инициализируется.Однако попытка сделать это, похоже, не работает (вызов gapi.auth2.getAuthInstance().isSignedIn.get()
возвращает false
, когда он должен вернуть true
).
Я также не могу понять,способ изменить «зарегистрированного пользователя», если пользователь firebase выходит из системы, а новый - в систему. Это потому, что, опять же, клиент gapi требует вызова gapi.client.setToken()
перед тем, как клиент будет инициализирован, и я могуЯ не вижу способа использования re-initializing
и уже инициализированного гени-клиента.
Я могу заставить работать гени-клиент, если использую собственный метод gapi.auth2.getAuthInstance().signIn()
клиента гапзи, но затем пользовательпредлагается дважды войти в мое приложение, используя (с точки зрения пользователя) идентичные всплывающие окна входа в Google (одно приглашение от firebase auth, а другое от клиента gapi).
Есть ли у кого-нибудь какие-либо предложения / советы?После того, как кто-то войдет через firebase auth, я смогу получить доступ к его userAccessToken
, но я просто не могу понять, как программным образом передать это клиенту gapi чистым способом.
В идеале:
- при загрузке приложения клиент
gapi
также будет загружаться и инициализироваться. - Когда пользователь решит войти в систему, я смогу использовать Firebase Auth для входа в систему через свой профиль Google,затем получите свой токен доступа и передайте его клиенту gapi для выполнения вызовов API Google.
- Если пользователь firebase когда-либо выходил из системы, я очищал бы токен api клиента gapi.
- Если входил новый пользователь firebase, я бы заново устанавливал токен api клиента gapi.