假设我要获取firebase身份验证令牌并将其设置为每个请求。要获取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}` : ''
}
});
}
});
}
});