Допустим, я хочу получить токен firebase auth и установить его для каждого запроса. Чтобы получить токен аутентификации firebase, мне нужно отправить асинхронный вызов на сервер firebase. Только когда он завершится, я получу токен. Я попытался установить его, как показано ниже. Но Аполлон отправляет запрос до того, как я получу токен от Firebase. Как я могу это исправить? Как я могу заставить Аполлона ждать?
export const client = new ApolloClient({
uri: 'http://localhost:4000/',
request: async operation => {
await firebase.auth().onAuthStateChanged(async user => {
if (user) {
const token = await firebase.auth().currentUser.getIdToken(/* forceRefresh */ true);
operation.setContext({
headers: {
authorization: token ? `Bearer ${token}` : ''
}
});
}
});
}
});