我正在尝试将 appcheck 集成到我的 Firebase React 中,我使用 TypeScript Web 版本 9。
我将下面的代码添加到我的functions/src/index.ts中
我的 appcheck 集成代码:
const { initializeAppCheck, ReCaptchaV3Provider } = require("firebase/app-check");
const firebaseConfig = { .. app info..};
const app = initializeApp(firebaseConfig);
const appCheck = initializeAppCheck(app, {
provider: new ReCaptchaV3Provider(' myKeyString '),
// Optional argument. If true, the SDK automatically refreshes App Check
// tokens as needed.
isTokenAutoRefreshEnabled: true
});
完整错误描述:
错误:解析函数触发器时发生错误。
ReferenceError:文档未定义
在 makeDiv (.../functions/node_modules/@firebase/app-check/dist/index.cjs.js:1150:24)
在initializeV3(.../functions/node_modules/@firebase/app-check/dist/index.cjs.js:1095:17)
在 ReCaptchaV3Provider.initialize (.../functions/node_modules/@firebase/app-check/dist/index.cjs.js:1295:9)
在 _activate (.../functions/node_modules/@firebase/app-check/dist/index.cjs.js:1599:23)
在initializeAppCheck(.../functions/node_modules/@firebase/app-check/dist/index.cjs.js:1555:5)
在对象。 (.../functions/lib/index.js:25:18)
在Module._compile(节点:内部/模块/cjs/loader:1095:14)
在 Object.Module._extensions..js (节点:内部/模块/cjs/loader:1124:10)
在Module.load(节点:内部/模块/cjs/loader:975:32)
在 Function.Module._load (节点:内部/模块/cjs/loader:816:12)
- 如果没有initializeAppCheck部分,我的功能部署正常并且一切正常。
请帮忙。谢谢你!
我也遇到了同样的问题,对我有用的解决方案是通过导出应用程序检查作为反应参考来创建自定义挂钩。然后在其他地方使用它(确保初始化)
import React, { useEffect, createRef } from "react";
import { initializeAppCheck, ReCaptchaEnterpriseProvider } from "firebase/app-check";
import { app } from "@lib/firebase/firebase"; // our already initialized firebse-app
export const appCheckRef = createRef();
const useAppCheck = () => {
useEffect(() => {
if (appCheckRef.current) {
return;
}
const appCheck = initializeAppCheck(app, {
provider: new ReCaptchaEnterpriseProvider(process.env.NEXT_PUBLIC_RECAPTCHA_KEY_ID/* reCAPTCHA Enterprise site key */),
isTokenAutoRefreshEnabled: true // Set to true to allow auto-refresh.
});
appCheckRef.current = appCheck;
}, []);
}
export default useAppCheck;
确保在您的应用程序初始化中使用此挂钩。
useAppCheck();
您现在可以在其他地方使用该引用(确保仅在初始化后使用它们):
import { appCheckRef } from "@lib/firebase/useAppCheck";
import { getToken } from "firebase/app-check"
export const apiRequest = async (options:AxiosRequestConfig) => {
...
let appCheckTokenResponse = await
getToken(appCheckRef.current,/* forceRefresh= */ false);
const headers = {
"X-Firebase-AppCheck": appCheckTokenResponse.token,...moreHeaders
.....
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)