"ERROR TypeError:Object(...)不是使用AngularFirestore和firebase的函数"

Haz*_*SAN 15 firebase angularfire2 angular

我想在我的应用程序中使用firebase和angularfire2,首先,我安装它们,并为声明:

在environment.ts

export const environment = {
    production: false,
    firebase: {
    apiKey: 'sfsdfdsff',
    authDomain: 'sfsdfdf',
    databaseURL: 'https://ng-sfsdfsf.firebaseio.com',
    projectId: 'ng-fitnesssfsdfdsf',
    storageBucket: 'ng-fsdfsdfsfdecff5.appspot.com',
   messagingSenderId: '21331323'
   }
  };
Run Code Online (Sandbox Code Playgroud)

在app.module.ts中,导入:

AngularFireModule.initializeApp(environment.firebase),
AngularFirestoreModule
Run Code Online (Sandbox Code Playgroud)

在想要获取我的数据的组件中:

import { AngularFirestore } from 'angularfire2/firestore';
Run Code Online (Sandbox Code Playgroud)

直到这一刻我没有错误,但是当我想在构造函数中声明我的变量来使用它时:

constructor(private trainingService: TrainingService, private 
db:AngularFirestore) { }
Run Code Online (Sandbox Code Playgroud)

我有一个错误:

ERROR TypeError: Object(...) is not a function
at eval (firestore.js:28)
at ZoneDelegate.invoke (zone.js:388)
at Zone.run (zone.js:138)
Run Code Online (Sandbox Code Playgroud)

在我的package.json中:

"angularfire2": "^5.0.0-rc.8.0",
"core-js": "^2.4.1",
"firebase": "^5.0.2",
Run Code Online (Sandbox Code Playgroud)

我不知道为什么?

谢谢你的帮助

Jam*_*els 36

AngularFire维护者在这里,随着我们迈向5.0 GA,我们有了许多重大变化.为了支持Angular 6,AngularFire的最新版本需要rxjs 6.虽然降级或固定到旧版本可以用于快速和脏修复,但我不建议这样做,因为它会让你无法改进库中的库未来.

我建议将rxj6升级到版本6,rxjs-compat如果你有尚未升级的依赖项,请考虑包括:

npm i rxjs@^6.0 rxjs-compat

关注angularfire变更日志,了解有关任何重大变化的重要信息; 一旦我们达到GA,我们将遵守semver.

这里参考RXJS 5 => 6迁移指南.


Bis*_*jit 18

我有同样的问题,但我解决了它.你可以关注我的工作.这是离子的一个例子.

安装rxjs

npm i rxjs@^6.0 rxjs-compat
Run Code Online (Sandbox Code Playgroud)

将rxjs-compact导入文件

import { AngularFireDatabase, AngularFireList } from 'angularfire2/database';
import { Observable } from 'rxjs-compat';
import { map } from 'rxjs-compat/operators';
Run Code Online (Sandbox Code Playgroud)

/sf/answers/3531321461/


Adr*_*rma 12

npm install rxjs@6 rxjs-compat@6
Run Code Online (Sandbox Code Playgroud)

这解决了这个问题


Hai*_*ang 5

我在安装时遇到同样的错误"angularfire2": 5.0.0-rc.9.

当我回滚时错误消失了5.0.0-rc.6.

npm install angularfire2@5.0.0-rc.6
npm install firebase@4.12.1
Run Code Online (Sandbox Code Playgroud)