TypeScript错误:属性'FIREBASE_APPCHECK_DEBUG_TOKEN'在类型'Window & typeof globalThis'上不存在(TS2339)

vyswwuz2  于 2023-06-24  发布在  TypeScript
关注(0)|答案(2)|浏览(288)

我在Vue / Firebase应用程序上设置了应用程序检查。
要使用App Check启用本地开发,我遵循intructions here
这些指令要求您设置调试令牌,如下所示:

self.FIREBASE_APPCHECK_DEBUG_TOKEN = true;
initializeAppCheck(app, { /* App Check options */ });

但是我的应用程序是用TypeScript编写的,它给了我这个TypeScript错误:

TS2339: Property 'FIREBASE_APPCHECK_DEBUG_TOKEN' does not exist on type 'Window & typeof globalThis'.

如何解决这一问题?

tzdcorbm

tzdcorbm1#

我必须声明一个global才能让它工作:

declare global {
  // eslint-disable-next-line no-var
  var FIREBASE_APPCHECK_DEBUG_TOKEN: boolean | string | undefined;
}
4smxwvx5

4smxwvx52#

如果在Next.js中实现appcheck遇到麻烦,解决方案是检查窗口对象是否可用:

let appCheck
if (typeof window !== 'undefined') {
  window.FIREBASE_APPCHECK_DEBUG_TOKEN = true
  appCheck = initializeAppCheck(firebaseApp, {
    provider: new ReCaptchaV3Provider(
      '6LejbHcmAAAAALSjJodOKUnmstPZ1KjhiraGWjFA'
    ),
  })
}

即使你在客户端导入和使用这些Firebase服务,在服务器端渲染(SSR)过程中,Next.js也会尝试执行import语句,因此运行到窗口未定义错误。

相关问题