如何在 Angular 中初始化 Firebase App Check

ebg*_*g11 5 firebase typescript angular firebase-app-check

我想知道如何使用 Angular 初始化 firebase 应用程序检查。

我正在使用 Angular Fire,但我不确定如何在使用任何服务之前初始化 Firebase 应用程序检查

文档有这个

在访问任何 Firebase 服务之前,将以下初始化代码添加到您的应用程序。

firebase.initializeApp({
  // Your firebase configuration object
});

const appCheck = firebase.appCheck();
// Pass your reCAPTCHA v3 site key (public key) to activate(). Make sure this
// key is the counterpart to the secret key you set in the Firebase console.
appCheck.activate('abcdefghijklmnopqrstuvwxy-1234567890abcd');
Run Code Online (Sandbox Code Playgroud)

但这如何在应用程序模块中完成。目前我像这样导入角火

@NgModule({
  declarations: [
   ...
  ],
  imports: [
    AngularFireModule.initializeApp(environment.firebaseConfig),
  ],
]

Run Code Online (Sandbox Code Playgroud)

更新:

我知道这可能还不是 Angular Fire 库的一部分,因为 firebase app-check 是多么新,但我注意到有一个本机 firebase 库 https://www.npmjs.com/package/@firebase/app-check

我很高兴使用它(例如,以某种方式覆盖本机 firebase js 对象),只要代码能够在调用任何服务之前将其应用到正确的位置,并且它不会在打字稿中给出编译错误

作为参考,我的版本如下:

角度:10.2.5

火力地堡:8.6.0

角火:6.1.5

调试本地主机版本也必须工作

Kin*_*oja 8

做这个:

// firebase-initialization.ts
import firebase from 'firebase/app';
import 'firebase/app-check';

// Environment Config
import { environment } from './path/to/environments';

const app = firebase.initializeApp(environment.firebase);
const appCheck = app.appCheck()
appCheck.activate('');
Run Code Online (Sandbox Code Playgroud)

然后将文件导入到应用程序模块中:

import "firebase-initialization"
Run Code Online (Sandbox Code Playgroud)

  • 我已经尝试过这个解决方案,但是在我这样做之后,我得到: @firebase/app-check: FirebaseError: AppCheck: Fetch server returned an HTTP error status。HTTP 状态:403。(appCheck/fetch-status-error)。此外,在调用云函数时,我得到: 未捕获(承诺):错误:未经身份验证,尽管我没有添加任何代码来在我的云函数中强制执行它。我的网络应用程序过去运行时没有错误。我已在 firebase 控制台中启用了 App Check。导入:AngularFireModule.initializeApp(environment.firebase) 是否仍需要位于应用程序模块中? (3认同)