Vir*_*rus 6 firebase typescript angular google-cloud-firestore angular7
我正在尝试在云 Firestore 数据库中插入表单数据。下面是我的 x.component.ts 文件,我在其中编写的构造函数出错
private firestore: AngularFireStore
import { Component, OnInit } from '@angular/core';
import { GroupService } from '../shared/group.service';
import { NgForm } from '@angular/forms';
// import { NullTemplateVisitor } from '@angular/compiler';
import { AngularFirestore } from '@angular/fire/firestore';
// import { AngularFireModule } from 'angularfire2';
// import { AngularFirestoreModule } from 'angularfire2/firestore';
@Component({
selector: 'app-group',
templateUrl: './group.component.html',
styleUrls: ['./group.component.css']
})
export class GroupComponent implements OnInit {
constructor(private groupService: GroupService, private firestore: AngularFirestore) { }
ngOnInit() {
this.resetForm();
}
resetForm(form ?: NgForm){
if(form!= null)
form.resetForm();
this.groupService.formData = {
$key : null,
firstname: '',
lastname: '',
age: null
}
}
onSubmit(form : NgForm){
let data = form.value;
// this.firestore.collection('groups').add(data);
this.resetForm(form);
}
}
Run Code Online (Sandbox Code Playgroud)
我得到的错误如下。
ERROR Error: StaticInjectorError(AppModule)[AngularFirestore -> InjectionToken angularfire2.app.options]: StaticInjectorError(Platform: core)[AngularFirestore -> InjectionToken angularfire2.app.options]: NullInjectorError: No provider for InjectionToken angularfire2.app.options! at NullInjector.push../node_modules/@angular/core/fesm5/core.js.NullInjector.get (core.js:8895) at resolveToken (core.js:9140) at tryResolveToken (core.js:9084) at StaticInjector.push../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (core.js:8981) at resolveToken (core.js:9140) at tryResolveToken (core.js:9084) at StaticInjector.push../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (core.js:8981) at resolveNgModuleDep (core.js:21217) at _createClass (core.js:21270) at _createProviderInstance (core.js:21234)
我遵循了下面的链接,但没有运气。
InjectionToken angularfire2.app.options 没有提供者
下面是我的 app.module.ts 文件。
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { AppComponent } from './app.component';
import { environment } from '../environments/environment'
import { AngularFireModule } from 'angularfire2';
import { AngularFireDatabaseModule } from 'angularfire2/database';
import { AngularFirestoreModule, AngularFirestore } from '@angular/fire/firestore';
import { GroupsComponent } from './groups/groups.component';
import { GroupComponent } from './groups/group/group.component';
import { GroupListComponent } from './groups/group-list/group-list.component'
import { GroupService } from './groups/shared/group.service';
import { FormsModule } from '@angular/forms'
@NgModule({
declarations: [
AppComponent,
GroupsComponent,
GroupComponent,
GroupListComponent
],
imports: [
BrowserModule,
AngularFirestoreModule,
AngularFireDatabaseModule,
AngularFireModule.initializeApp(environment.firebaseConfig),
FormsModule
],
providers: [AngularFirestore, GroupService],
bootstrap: [AppComponent]
})
export class AppModule { }
Run Code Online (Sandbox Code Playgroud)
Nie*_*sic 12
我不知道在哪个版本的 AngularFire 中发生了这种变化,但是如果您通过 添加 AngularFire Auth ng add @angular/fire
,那么当您尝试导入AngularFireAuth
组件时也会遇到此错误。
可以通过FIREBASE_OPTIONS
从以下部分导入@angular/fire/compat
并将以下内容添加到providers
您的 中来解决此问题module.ts
:
{ provide: FIREBASE_OPTIONS, useValue: environment.firebase }
Run Code Online (Sandbox Code Playgroud)
感谢Saumya的修复。
我想我知道解决我问题的答案。我只需将以下语句导入到我创建的服务中,并且需要在服务的构造函数中创建对象。
import { AngularFirestore } from '@angular/fire/firestore';
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
16441 次 |
最近记录: |