Dev*_*per 90 firebase angularfire2 angular google-cloud-firestore
我正在学习Angular寻找修复错误的帮助:我正在关注此链接:https://github.com/angular/angularfire2/blob/master/docs/install-and-setup.md 以创建一个角度带有angular2和angularfirestore2的小应用程序
但当我点击服务时,我在浏览器控制台中收到以下错误..
StaticInjectorError[AngularFirestore]:
StaticInjectorError[AngularFirestore]:
NullInjectorError: No provider for AngularFirestore!
at _NullInjector.get (core.js:923)
at resolveToken (core.js:1211)
at tryResolveToken (core.js:1153)
at StaticInjector.get (core.js:1024)
at resolveToken (core.js:1211)
at tryResolveToken (core.js:1153)
at StaticInjector.get (core.js:1024)
at resolveNgModuleDep (core.js:10585)
at NgModuleRef_.get (core.js:11806)
at resolveDep (core.js:12302)
Run Code Online (Sandbox Code Playgroud)
我试过谷歌搜索但没有找到确切的解决方案对我没用:(,
这是我遵循的:1)已安装的节点版本8.9.1 2)npm install -g @ angular/cli - > Version 1.5.2 3)ng new'project-name'4)npm install angularfire2 firebase --save
这是我的app.module.ts文件:
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { AppComponent } from './app.component';
import { AngularFireModule } from 'angularfire2';
import { environment } from '../environments/environment';
@NgModule({
imports: [
BrowserModule,
AngularFireModule.initializeApp(environment.firebase)
],
declarations: [ AppComponent ],
bootstrap: [ AppComponent ]
})
export class AppModule {}
Run Code Online (Sandbox Code Playgroud)
app.component.ts:
import { Component } from '@angular/core';
import { AngularFirestore } from 'angularfire2/firestore';
import { Observable } from 'rxjs/Observable';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent {
title = 'app';
constructor(db: AngularFirestore) {
}
}
Run Code Online (Sandbox Code Playgroud)
environemnt.ts:
export const environment = {
production: false,
firebase: {
apiKey: 'xxxxx',
authDomain: 'aaaaaaa',
databaseURL: 'bbbbbbbbbbbbbbbbbb',
projectId: 'aaaaaaaaaaaaaa',
storageBucket: 'aaaaaaaaaaaa',
messagingSenderId: 'aaaaaaaaaaaaa'
}
};
Run Code Online (Sandbox Code Playgroud)
然后ng服务,我收到上述错误..
Saj*_*ran 172
您应该添加providers: [AngularFirestore]在app.module.ts.
@NgModule({
imports: [
BrowserModule,
AngularFireModule.initializeApp(environment.firebase)
],
declarations: [ AppComponent ],
providers: [AngularFirestore],
bootstrap: [ AppComponent ]
})
export class AppModule {}
Run Code Online (Sandbox Code Playgroud)
sun*_*leo 17
我有同样的问题,下面已经解决了.
旧服务代码:
@Injectable()
Run Code Online (Sandbox Code Playgroud)
更新的工作服务代码:
@Injectable({
providedIn: 'root'
})
Run Code Online (Sandbox Code Playgroud)
简单的答案。
每当遇到NullInjector error。理由始终import/providers是missing。
解决方案:
请将模块添加到文件imports内的数组中module.ts。
providers在文件内的数组中添加您要使用的服务modules.ts。
@NgModule({})
export class SomeModule{
`imports:[]`,
`providers: []`
}
Run Code Online (Sandbox Code Playgroud)
小智 7
打开:./src/app/app.module.ts
在顶部导入Firebase模块:
从'../environments/environment' 导入{ environment }; 从'angularfire2'
导入{ AngularFireModule }; 从'angularfire2/firestore'
导入{ AngularFirestoreModule };
非常重要:
记得更新NgModule中的'imports':
@NgModule({
declarations: [
AppComponent,
OtherComponent // Add other components here
...
],
imports: [
BrowserModule,
AngularFireModule.initializeApp(environment.firebase, 'your-APP-name-here'),
AngularFirestoreModule
],
...
})
Run Code Online (Sandbox Code Playgroud)
尝试一下,它现在可以工作了.
有关详细信息,请参阅angularfire2文档:
https://github.com/angular/angularfire2/blob/master/docs/install-and-setup.md
祝您好运!
小智 5
添加AngularFirestoreModule.enablePersistence()导入部分解决了我的问题:
imports: [
BrowserModule, AngularFireModule,
AngularFireModule.initializeApp(config),
AngularFirestoreModule.enablePersistence()
]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
127779 次 |
| 最近记录: |