首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用angularFire2 Version5.0连接角度和火源

使用angularFire2 Version5.0连接角度和火源
EN

Stack Overflow用户
提问于 2017-10-18 00:05:38
回答 1查看 481关注 0票数 1

我似乎有一个错误,我找不到答案。我一整天都在搜索自述文件和angularFire文档。我在控制台中得到了这个错误

代码语言:javascript
运行
复制
Error: No provider for InjectionToken FirebaseAppConfigToken!
    at injectionError (core.es5.js:1169)
    at noProviderError (core.es5.js:1207)
    at ReflectiveInjector_.webpackJsonp.../../../core/@angular/core.es5.js.ReflectiveInjector_._throwOrNull (core.es5.js:2649)
    at ReflectiveInjector_.webpackJsonp.../../../core/@angular/core.es5.js.ReflectiveInjector_._getByKeyDefault (core.es5.js:2688)
    at ReflectiveInjector_.webpackJsonp.../../../core/@angular/core.es5.js.ReflectiveInjector_._getByKey (core.es5.js:2620)
    at ReflectiveInjector_.webpackJsonp.../../../core/@angular/core.es5.js.ReflectiveInjector_.get (core.es5.js:2489)
    at resolveNgModuleDep (core.es5.js:9492)
    at _callFactory (core.es5.js:9556)
    at _createProviderInstance$1 (core.es5.js:9506)
    at resolveNgModuleDep (core.es5.js:9488)

因此,我尝试将其包含在app.module.ts import { NgModule, InjectionToken } from '@angular/core';中,并将其列在providers数组中。然后我得到了休闲错误..。

代码语言:javascript
运行
复制
Uncaught Error: Can't resolve all parameters for InjectionToken: (?).
    at syntaxError (compiler.es5.js:1694)
    at CompileMetadataResolver.webpackJsonp.../../../compiler/@angular/compiler.es5.js.CompileMetadataResolver._getDependenciesMetadata (compiler.es5.js:15781)
    at CompileMetadataResolver.webpackJsonp.../../../compiler/@angular/compiler.es5.js.CompileMetadataResolver._getTypeMetadata (compiler.es5.js:15649)
    at CompileMetadataResolver.webpackJsonp.../../../compiler/@angular/compiler.es5.js.CompileMetadataResolver._getInjectableMetadata (compiler.es5.js:15635)
    at CompileMetadataResolver.webpackJsonp.../../../compiler/@angular/compiler.es5.js.CompileMetadataResolver.getProviderMetadata (compiler.es5.js:15926)
    at compiler.es5.js:15855
    at Array.forEach (<anonymous>)
    at CompileMetadataResolver.webpackJsonp.../../../compiler/@angular/compiler.es5.js.CompileMetadataResolver._getProvidersMetadata (compiler.es5.js:15815)
    at CompileMetadataResolver.webpackJsonp.../../../compiler/@angular/compiler.es5.js.CompileMetadataResolver.getNgModuleMetadata (compiler.es5.js:15470)
    at JitCompiler.webpackJsonp.../../../compiler/@angular/compiler.es5.js.JitCompiler._loadModules (compiler.es5.js:26826)

我没有使用任何防火授权方法。我只是简单地尝试连接到我的防火墙数据库,并玩它。

我还想提到,我确实将firebase控制台中的读写规则设置为true,所以我不认为这是问题所在。我还将firebaseConfig对象包含在environments/environment.prod.ts and environments.ts文件中。然后,我将其传递到app.module.ts的imports数组中,类似于下面的AngularFireModule.initializeApp(environment.firebase)

如果有人能帮我解释一下这个话题,我将不胜感激。谢谢!

更新:

我认为id包括我的app.module.ts和app.component.ts文件来帮助。

app.module.ts

代码语言:javascript
运行
复制
import { InjectionToken } from '@angular/core';
// Modules
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { HttpModule } from '@angular/http';
// Firebase Modules
import { AngularFireModule } from 'angularFire2';
import { AngularFireAuthModule } from 'angularFire2/auth';
import { AngularFirestoreModule, AngularFirestore } from 'angularfire2/firestore';
// Components
import { AppComponent } from './app.component';
// Services
// environment
import { environment } from './../environments/environment';

// testing firebase config options environment param
console.log(environment.firebase);

// Set up like the example from the angualrFirebase install guide
// https://github.com/angular/angularfire2/blob/master/docs/install-and-setup.md#6-setup-individual-ngmodules

// I kept this project as simple as possible to focus on..
// Debugging the firebase and angularFire2 issue I'm experiencing.
// Even after trying to emulate the example use code from the angularFire2 repo,
// I'm still experiencing the same error.

// ERROR Error: No provider for InjectionToken FirebaseAppConfigToken!

// If I include InjectionToken as a provider I get the other error I was experiencing

// Uncaught Error: Can't resolve all parameters for InjectionToken: (?).

// Including angularFirestore as a provider throws a different error...
// I dont think I should have to list any providers though from what I can gather form the
// angularFire2 docs

// Uncaught Error: Can't resolve all parameters for AngularFirestore: ([object Object], ?).

@NgModule({
  declarations: [
    AppComponent
  ],
  imports: [
    BrowserModule,
    HttpModule,
    AngularFireModule.initializeApp(environment.firebase, 'test-blog-app'),
    AngularFirestoreModule,
    AngularFireAuthModule
  ],
  providers: [
    // AngularFirestore,
    // InjectionToken
  ],
  bootstrap: [AppComponent]
})
export class AppModule { }

app.component.ts

代码语言:javascript
运行
复制
import { Component } from '@angular/core';
import { AngularFirestore } from 'angularfire2/firestore';
import { Observable } from 'rxjs/Observable';

// This file is based off of the angularFire github repository
// https://github.com/angular/angularfire2#example-use

@Component({
  selector: 'app-root',
  template: `
  <ul>
    <li *ngFor="let post of posts | async">
      {{ post.title }}
    </li>
  </ul>
  `
})
export class AppComponent {
  posts: Observable<any[]>;
  constructor(db: AngularFirestore) {
    this.posts = db.collection('posts').valueChanges();
  }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-10-24 00:11:11

我试图从angularfire进口,而不是angularFire。

代码语言:javascript
运行
复制
import { AngularFireModule } from 'angularFire2';
import { AngularFireAuthModule } from 'angularFire2/auth';

应该是

代码语言:javascript
运行
复制
import { AngularFireModule } from 'angularfire2';
import { AngularFireAuthModule } from 'angularfire2/auth';

我相信这是真正的错误。这也修正了我收到的ng服务警告。谢谢你们。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46800944

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档