我需要在getStaticProps中将appCheck令牌传递给我的请求,但是当我使用getToken(方法时,它会抛出下面的错误:AppCheck is being used before activate() is called for FirebaseApp [DEFAULT]
是否有任何方法在服务端渲染中使用appCheck令牌?
firebase.js:
if (!firebase.apps.length) {
firebase.initializeApp(firebaseConfig);
const appCheck = firebase.appCheck();
appCheck.activate(process.env.NEXT_PUBLIC_APP_CHECK_SITE_KEY, true);
});
}
index.js:
export const getStaticProps = async () => {
let token
appCheck
.getToken(/* forceRefresh= */ false)
.then(async (rs) => {
token = rs.token;
})
.catch((err) => {
console.log(err);
});
const places = await getAllPlaces(token);
return { props: { places }, revalidate: 60 };
};```
1条答案
按热度按时间mi7gmzs61#
这篇文章中有一个类似的问题可能会有所帮助:https://github.com/vercel/next.js/discussions/35689。
目前,我认为在服务器端渲染中使用App Check是不可能的,可能是因为App Check与客户端浏览器交互,而不是与服务器交互。
这只是一个理论,但从文档中,我认为App Check至少需要一些访问客户端的权限。
更新后的客户端应用程序将开始发送App Check令牌沿着向Firebase发出的每个请求。
https://firebase.google.com/docs/app-check/web/recaptcha-provider?hl=en