无法解析 AngularFirestore 的所有参数:([object Object], ?)

Posted

技术标签:

【中文标题】无法解析 AngularFirestore 的所有参数:([object Object], ?)【英文标题】:Can't resolve all parameters for AngularFirestore: ([object Object], ?) 【发布时间】:2018-04-12 01:53:43 【问题描述】:

一段时间以来,我一直在尝试解决此错误。错误为Can't resolve all parameters for AngularFirestore: ([object Object], ?)。有没有其他人遇到过这个问题,你是如何解决这个问题的。我已阅读文档,但无法深入了解此问题。

import  Component  from '@angular/core';
import  AngularFirestore  from 'angularfire2/firestore';
import  AngularFireDatabase  from 'angularfire2/database';
import  Observable  from 'rxjs/Observable';

@Component(
    selector: 'app-root',
    templateUrl: './app.component.html',
    styleUrls: ['./app.component.css'],
    providers: [AngularFirestore, AngularFireDatabase]
)
export class AppComponent 
    items: Observable<any[]>;

    constructor(db: AngularFirestore, adb: AngularFireDatabase) 
        this.items = db.collection('0').valueChanges();
        console.log(this.items)

    

package.json

"angularfire2": "^5.0.0-rc.3",
"firebase": "^4.6.0",

【问题讨论】:

【参考方案1】:

我遇到了同样的错误。这是因为您将 AngularFirestore 列为服务提供商,但它不是。但是一旦作为提供者被删除,我会得到另一个错误:

Error: No provider for AngularFirestore! at injectionError at noProviderError

要修复此错误,您必须将 AngularFirestoreModule 导入您的 app.module.ts

像下面这样:

import  AngularFirestoreModule  from 'angularfire2/firestore';

@NgModule(
  declarations: [
    AppComponent
  ],
  imports: [
    BrowserModule,
    .....
    AngularFireModule.initializeApp(firebaseConfig),
    AngularFirestoreModule <---
  ],
  providers: [],
  bootstrap: [AppComponent]
)
export class AppModule  

请移除 AngularFirestoreModule 后面的箭头,它只是为了明确它应该放置在哪里。

【讨论】:

我仍然收到错误消息。我已经在提供程序中有以下模块。 BrowserModule, HttpModule, AngularFireModule.initializeApp(firebaseConfig), AngularFirestoreModule,【参考方案2】:

你必须将 AngularFirestoreModule 导入你的 app.module.ts

在导入和提供程序中。

 imports: [
    BrowserModule,
    .....
    AngularFireModule.initializeApp(firebaseConfig),
    AngularFirestoreModule
  ],

providers: [AngularFirestoreModule],
.....

【讨论】:

【参考方案3】:

检查导入后,问题结束。我在下面导入 app.module:

  imports: [
    BrowserModule,
    AngularFireModule.initializeApp(environment.firebase),
    AngularFirestoreModule,
    AngularFirestoreModule.enablePersistence(),
    AngularFireAuthModule, 
    NgbModule.forRoot(),
    AppRoutingModule,
    HttpModule,
    HttpClientModule,
  ],

【讨论】:

以上是关于无法解析 AngularFirestore 的所有参数:([object Object], ?)的主要内容,如果未能解决你的问题,请参考以下文章

高级AngularFirestore2查询[重复]

在 AngularFirestore 中使用来自两个不同集合的数据构建对象时遇到问题

使用 AngularFirestore 和 firebase 的“ERROR TypeError: Object(...) is not a function”

无法解析配置 ':classpath' 的所有工件。无法解析 com.android.tools.build:gradle:3.5.3。显示错误

无法解析配置“:app:androidApis”的所有文件。

错误:无法解析配置“:app:debugCompileClasspath”的所有文件