我正在使用google firebase创建用户注册系统,我正在遵循本教程:
注意
:正在使用此版本“ firebase”:“ ^ 5.5.6”,
运行我的应用程序时,出现以下错误:
ERROR in src/app/login/login.component.ts(2,10): error TS2305: Module '"C:/Users/jelly/projects/profile/node_modules/angularfire2/index"' has no exported member 'AngularFire'.
src/app/login/login.component.ts(3,28): error TS2305: Module '"C:/Users/jelly/projects/profile/node_modules/angularfire2/firestore/index"' has no exported member 'AuthProviders'.
src/app/login/login.component.ts(3,43): error TS2305: Module '"C:/Users/jelly/projects/profile/node_modules/angularfire2/firestore/index"' has no exported member 'AuthMethods'.
这是app.modul.ts
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
import { HttpModule, JsonpModule } from '@angular/http';
import { RouterModule } from '@angular/router';
import { AppRoutingModule } from './app-routing.module';
import { AppComponent } from './app.component';
import { UserProfileComponent } from './user-profile/user-profile.component';
import {HttpClientModule} from '@angular/common/http';
import { UserService } from './service/user.service';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
import { NgbModule } from '@ng-bootstrap/ng-bootstrap';
import { MomentModule } from 'ngx-moment';
import { AngularFireModule } from 'angularfire2';
import { AngularFirestoreModule } from 'angularfire2/firestore';
import { LoginComponent } from './login/login.component';
import { EmailComponent } from './email/email.component';
import { SignupComponent } from './signup/signup.component';
import { AngularFireAuthModule } from 'angularfire2/auth';
import { AngularFireDatabaseModule} from 'angularfire2/database';
const firebaseConfig = {
apiKey: '',
authDomain: '',
databaseURL: '',
projectId: '',
storageBucket: '',
messagingSenderId: ''
};
@NgModule({
declarations: [
AppComponent,
UserProfileComponent,
LoginComponent,
EmailComponent,
SignupComponent
],
imports: [
BrowserModule,
AppRoutingModule,
NgbModule,
BrowserModule,
MomentModule,
AppRoutingModule,
BrowserAnimationsModule,
AngularFireAuthModule,
BrowserModule,
AngularFirestoreModule,
AngularFireModule.initializeApp(firebaseConfig),
AngularFireDatabaseModule,
HttpModule,
FormsModule,
HttpClientModule,
ReactiveFormsModule,
RouterModule,
AppRoutingModule,
],
providers: [UserService],
bootstrap: [AppComponent]
})
export class AppModule { }
这里是登录组件,其他组件也只是empyt
import { Component, OnInit } from '@angular/core';
import { AngularFire, } from 'angularfire2';
import { AngularFirestore, AuthProviders, AuthMethods, AngularFirestoreCollection, AngularFirestoreDocument } from 'angularfire2/firestore';
import { Router } from '@angular/router';
@Component({
selector: 'app-login',
templateUrl: './login.component.html',
styleUrls: ['./login.component.scss']
})
export class LoginComponent implements OnInit {
// declare empyt array to hold error data
error: any;
constructor(public af: AngularFire, private router: Router) {
// fucntion to check user authentication
this.af.auth.subscribe(auth => {
if (auth) {
this.router.navigateByUrl('/members');
}
});
}
// function to login in facebook
loginFb() {
this.af.auth.login({
provider: AuthProviders.Facebook,
method: AuthMethods.Popup,
}).then(
(success) => {
this.router.navigate(['/members']);
}).catch(
(err) => {
this.error = this.error;
});
}
// function to login with google
loginGoogle() {
this.af.auth.login({
provider: AuthProviders.Facebook,
method: AuthMethods.Popup,
}).then(
(success) => {
this.router.navigate(['/members']);
}).catch(
(err) => {
this.error = this.error;
});
}
ngOnInit() {
}
}
我已经在堆栈溢出中使用了几乎所有解决方案,但没有任何效果,我现在要放弃了,我没有看到任何关于傻瓜的好的文档,以了解到底发生了什么事:(
要摆脱此错误,我需要更改什么?请帮助
答案 0 :(得分:1)
该教程的发布日期为2017年1月17日,如果您运行npm install angularfire2 firebase --save
,则将安装最新版本的firebase,这不是该教程所基于的版本,请看这里similar post on this problem
因此,您必须将降级的Firebase版本(该项目用于该版本或升级导入)以使其指向正确的文件,以便在其中找到所需的类