web-dev-qa-db-ja.com

「エラーTypeError:Object(...)は関数ではありません」AngularFirestoreとfirebaseを使用して

私はアプリで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'
   }
  };

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",

そして、なぜか分からないのですか?

ご協力いただきありがとうございます

14
Hazem HASAN

私は同じ問題を抱えていましたが、解決しました。あなたは私の仕事に従うことができます。これはionicの例です。

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/656775

18
Biswajit

ここでAngularFireのメンテナーは、5.0 GAに向けて行進する際にいくつかの重大な変更がありました。 Angular 6をサポートするために、AngularFireの最近のリリースにはrxjs 6が必要です。はい、古いバージョンへのダウングレードまたはピン留めは迅速で汚れた修正のために機能しますが、将来のライブラリの改善。

まだアップグレードしていない依存関係がある場合は、rxj6をバージョン6にアップグレードし、rxjs-compatを含めることをお勧めします。

npm i rxjs@^6.0 rxjs-compat

重大な変更に関する重要な情報については、 angularfire changelog に注意してください。 GAにヒットしたら、semverを順守します。

また、参照用に RXJS 5 => 6移行ガイド です。

37
James Daniels
npm install rxjs@6 rxjs-compat@6

これで問題が解決しました

13
Adrita Sharma

"angularfire2": 5.0.0-rc.9のインストール時に同じエラーが発生します。

5.0.0-rc.6にロールバックするとエラーは消えます。

npm install [email protected]
npm install [email protected]
6
Haifeng Zhang

これが私の解決策でした:

npm uninstall angularfire2
npm install [email protected]
npm uninstall firebase
npm install [email protected]
0

バージョンの前にある^を削除します。このように。

{
    ...

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

同じエラーが発生しました。 Sudo npm update rxjsでrxjsを更新するとすぐに。そして、rxjs-compatをSudo npm i rxjs@latest rxjs-compatで更新しました。脆弱性を修正し、ng buildを実行してからng serveを実行した後。これでエラーが修正されました。 (macOSの場合)

0
EZCity