0

我尝试使用 AngularFire 为经过验证的 Firebase 请求实施 DeviceCheck。使用 ReCaptchaV3 Validation 和 AngularFire 时,一切都在 webApp 中运行良好。

我根据文档https://firebase.google.com/docs/app-check/ios/devicecheck-provider?hl=en设置了必要的一切 ,并与 firebase 支持人员联系。

在 AppDelegate.swift

#if targetEnvironment(simulator)
        let providerFactory = AppCheckDebugProviderFactory()
    #else
        let providerFactory = MyAppCheckProviderFactory()
    #endif
    AppCheck.setAppCheckProviderFactory(providerFactory)
    // Use Firebase library to configure APIs
    FirebaseApp.configure()

MyAppCheckProviderFactory.swift

class MyAppCheckProviderFactory: NSObject, AppCheckProviderFactory {
func createProvider(with app: FirebaseApp) -> AppCheckProvider? {
    #if targetEnvironment(simulator)
    // App Attest is not available on simulators.
    // Use a debug provider.
    let provider = AppCheckDebugProvider(app: app)

    // Print only locally generated token to avoid a valid token leak on CI.
    print("Firebase App Check debug token: \(provider?.localDebugToken() ?? "" )")

    return provider
    #else
    if #available(iOS 14.0, *) {
      // Use App Attest provider on real devices.
      return AppAttestProvider(app: app)
    } else {
      return DeviceCheckProvider(app: app)
    }
    #endif
}

}

根据文档,这应该足够(并且 App.entitlements 设置为生产)让它工作。也许 AngularFire 没有发送令牌?

有谁知道如何让它发挥作用?我考虑过使用 HTTP 拦截器并为每个请求手动添加 firebase 令牌,但无法弄清楚如何正确执行。

离子 5 Angular 12 “@angular/fire”:“^7.2.0”,“firebase”:“^9.6.2”,“rxfire”:“^6.0.2”,“rxjs”:“~6.6.0” ,

4

0 回答 0