繁体   English   中英

使用AngularFirestore和firebase的“ ERROR TypeError:Object(…)不是函数”

[英]“ERROR TypeError: Object(…) is not a function” using AngularFirestore and firebase

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

在环境中

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'
   }
  };

在app.module.ts中,导入:

AngularFireModule.initializeApp(environment.firebase),
AngularFirestoreModule

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

import { AngularFirestore } from 'angularfire2/firestore';

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

constructor(private trainingService: TrainingService, private 
db:AngularFirestore) { }

我有一个错误:

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

在我的package.json中:

"angularfire2": "^5.0.0-rc.8.0",
"core-js": "^2.4.1",
"firebase": "^5.0.2",

我不知道为什么?

谢谢你的帮助

在这里,AngularFire的维护者在迈向5.0 GA的过程中发生了许多重大变化。 为了支持Angular 6,最近发行的AngularFire要求使用rxjs6。虽然可以将其降级或固定到旧版本以进行快速,肮脏的修复,但我不建议这样做,因为它会使您无法对库中的库进行改进。未来。

如果您有尚未升级的依赖项,我建议将rxj6升级到版本6,并包括rxjs-compat

npm i rxjs@^6.0 rxjs-compat

密切关注angularfire更改日志,以获取有关任何重大更改的重要信息; 一旦我们达到了GA,我们就会遵守semver。

作为参考,这里是RXJS 5 => 6迁移指南

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

安装rxjs

npm i rxjs@^6.0 rxjs-compat

将rxjs-compact导入文件

import { AngularFireDatabase, AngularFireList } from 'angularfire2/database';
import { Observable } from 'rxjs-compat';
import { map } from 'rxjs-compat/operators';

https://stackoverflow.com/a/50447449/6567753

npm install rxjs@6 rxjs-compat@6

这解决了问题

安装"angularfire2": 5.0.0-rc.9时出现相同的错误"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

删除^此版本前面的。 像这样

{
    ...

    "angularfire2": "5.0.0-rc.6",
    "firebase": "4.12.1",
}

这是我的解决方案:

npm uninstall angularfire2
npm install angularfire2@5.0.0-rc.4
npm uninstall firebase
npm install firebase@4.8.0

我遇到了同样的错误。 我用sudo npm update rxjs 然后使用sudo npm i rxjs@latest rxjs-compat更新sudo npm i rxjs@latest rxjs-compat 修复漏洞后,再运行ng build然后ng serve 这解决了我的错误。 (在macOS上)

我首先使用以下命令卸载了firebase和angularfire2:

  • npm uninstall firebase
  • npm uninstall angularfire2

然后使用以下命令重新安装:

  • npm install firebase@4.12.1
  • npm install angularfire2@5.0.0-rc.6

在实际安装的版本中使用^安装angularfire2@5.0.0-rc.9,因此我只删除了该部分。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM