如何将 Firebase 的 signInWithCustomToken 方法与 Angular 17 和 @angular/fire 17.0.0 结合使用?

问题描述 投票:0回答:1

所以,我有一些 Firebase 函数和端点,我想从我的角度前端发送请求。端点之一通过 createCustomToken 创建自定义令牌并将其返回到前端。然后从前端我想使用signInWithCustomToken方法来验证令牌。问题是我收到此错误:

AngularFireModule has not been provided in your AppModule (this can be done manually or 
implictly using provideFirebaseApp) or you're calling an AngularFire method outside of 
an NgModule (which is not supported).

我根本搞不懂,我的app.config.ts是这样的:

import { ApplicationConfig, importProvidersFrom } from '@angular/core';
import { provideRouter } from '@angular/router';
import { DatePipe } from '@angular/common';
import { routes } from './app.routes';
import { provideClientHydration } from '@angular/platform-browser';
import { initializeApp, provideFirebaseApp } from '@angular/fire/app';
import { getFirestore, provideFirestore } from '@angular/fire/firestore';
import { provideAuth, getAuth } from '@angular/fire/auth';
import { getStorage, provideStorage } from '@angular/fire/storage';
import { firebaseConfig } from '../../firebase.config';
import { provideAnimations } from '@angular/platform-browser/animations';
import { provideHttpClient } from '@angular/common/http';

export const appConfig: ApplicationConfig = {
  providers: [
    provideRouter(routes),
    provideClientHydration(),
    importProvidersFrom(
      provideFirebaseApp(
        () => initializeApp(firebaseConfig)
      ), provideFirestore(
        () => getFirestore()
      ), provideStorage(
        () => getStorage()
      ), provideAuth(
        () => getAuth()
      )),
    provideAnimations(),
    provideHttpClient(),
    DatePipe
  ],
};

我正在尝试调用前端服务文件中的方法,如下所示:

import { getAuth, signInWithCustomToken } from "@angular/fire/auth";
// rest of component...
signInWithCustomToken(getAuth(), this.getToken())
angular firebase function oauth angularfire
1个回答
0
投票

使用provideFirebaseApp时无需添加importProvider。

从下面的代码中删除 importProvider 并尝试:

export const appConfig: ApplicationConfig = {
  providers: [
    provideRouter(routes),
    provideClientHydration(),
      provideFirebaseApp(
        () => initializeApp(firebaseConfig)
      ), 
      provideFirestore(
        () => getFirestore()
      ), 
      provideStorage(
        () => getStorage()
      ), 
      provideAuth(
        () => getAuth()
      ),
    provideAnimations(),
    provideHttpClient(),
    DatePipe
  ],
};
© www.soinside.com 2019 - 2024. All rights reserved.