Firebase 未捕获(承诺中):错误:AngularFireAuth没有提供程序
我们尝试使用(Firebase/ionic2/angularjs2)通过google身份验证登录Firebase 未捕获(承诺中):错误:AngularFireAuth没有提供程序,firebase,ionic2,firebase-authentication,angularfire2,google-login,Firebase,Ionic2,Firebase Authentication,Angularfire2,Google Login,我们尝试使用(Firebase/ionic2/angularjs2)通过google身份验证登录 请指导我们在我们的代码中工作的内容 为了澄清@rmalviya的建议,我假设您目前使用的是爱奥尼亚3.x.x版,对于这个版本,您有两种方法可以导入本机插件和为插件添加相应的提供者 1) 您可以在当前页面的typescript文件中添加提供程序。像这样: import { AngularFireAuth } from 'angularfire2/auth'; ... @Componen
请指导我们在我们的代码中工作的内容 为了澄清@rmalviya的建议,我假设您目前使用的是爱奥尼亚3.x.x版,对于这个版本,您有两种方法可以导入本机插件和为插件添加相应的提供者 1) 您可以在当前页面的typescript文件中添加提供程序。像这样:
import { AngularFireAuth } from 'angularfire2/auth';
...
@Component({
selector: 'page-home',
templateUrl: 'home.html',
providers: [AngularFireAuth]
})
2) 第二种方法是将其导入app.modules.ts并将插件添加到提供者中
import { AngularFireAuth } from 'angularfire2/auth';
...
providers: [
StatusBar,
SplashScreen,
{provide: ErrorHandler, useClass: IonicErrorHandler},
AngularFireAuth
]
如果您正在使用系统,则需要在app.module.ts
和提供者数组中的page.module.ts
中导入AngularFireAuth
app.module.ts:
@NgModule({
...
providers: [AngularFireAuth]
...
@NgModule({
declarations: [
SignupPage,
],
imports: [
IonicPageModule.forChild(SignupPage)
],
exports: [
SignupPage
],
providers: [
AngularFireAuth
]
})
page.module.ts:
@NgModule({
...
providers: [AngularFireAuth]
...
@NgModule({
declarations: [
SignupPage,
],
imports: [
IonicPageModule.forChild(SignupPage)
],
exports: [
SignupPage
],
providers: [
AngularFireAuth
]
})
app.component.spec.ts:
import { FirebaseApp, FirebaseAppConfig, AngularFireModule } from 'angularfire2';
import { AngularFireAuth, AngularFireAuthModule } from 'angularfire2/auth';
import { AngularFireDatabaseModule } from 'angularfire2/database';
import * as firebase from 'firebase/app';
import { firebaseConfig } from './app.module';
describe('AppComponent', () => {
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [
AppComponent
],
imports: [
AngularFireModule.initializeApp(firebaseConfig), //ajout
AngularFireAuthModule, //ajout
AngularFireDatabaseModule //ajout
],
}).compileComponents();
}));
我也面临同样的问题,但我通过在我的核心模块中添加以下几行代码,成功地解决了这个问题 CoreModule包含用于实例化应用程序和加载某些核心功能的代码
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
/* 3e. Import the angularfire2 thingy. */
**import {AngularFirestoreModule } from 'angularfire2/firestore';
import { AngularFireStorageModule } from 'angularfire2/storage';
import { AngularFireAuthModule } from 'angularfire2/auth';**
import { AuthModule } from '../auth/auth.module';
import { AuthService } from '../core/auth.service';
@NgModule({
declarations: [],
imports: [
CommonModule,
/* To allow the db to talk to the form. */
**AuthModule,
AngularFireAuthModule,
AngularFireStorageModule,
AngularFirestoreModule,**
],
exports: [],
providers: [
AuthService,
]
})
export class CoreModule { }
尝试将
app.component.ts
导入providers
数组中的angularfieauth
中。是否将其添加到imports
数组下的NgModule
中?是否解决了该问题?Im有点卡在同一个地方添加-从'angularfire2/auth'导入{AngularFireAuthModule}代码>到app.module并导入。