从 'angularfire2/database' 导入 {AngularFireDatabase, FirebaseListObservable}

import {AngularFireDatabase, FirebaseListObservable} from 'angularfire2/database'

我正在学习一年前制作的教程,在学习过程中,我遇到了一些似乎已过时的代码。我已经搜索了几个解决方案,但遗憾的是并没有解决我的问题。 因此,是否有一种更新的方式来编写以下代码?

import {AngularFireDatabase, FirebaseListObservable} from 'angularfire2/database';
import { AngularFireAuth } from "angularfire2/auth";
import { Observable } from "rxjs/Observable";

这是打印出来的错误。

ERROR in node_modules/rxjs/Observable.d.ts(1,15): error TS2307: Cannot find module 'rxjs-compat/Observable'. src/app/chat-form/chat-form.component.ts(16,15): error TS2339: Property 'sendMessage' does not exist on type 'ChatService'. src/app/services/chat.service.ts(2,30): error TS2305: Module '"C:/Users/Gabriel/stack/School/HVA/JAAR 2/YOUTUBE TYPESCRIPT TUTORIAL/MyAngularApplication/We-chat/node_modules/angularfire2/database/index"' has no exported member 'FirebaseListObservable'. src/app/services/chat.service.ts(4,10): error TS2305: Module '"C:/Users/Gabriel/stack/School/HVA/JAAR 2/YOUTUBE TYPESCRIPT TUTORIAL/MyAngularApplication/We-chat/node_modules/rxjs/Observable"' has no exported member 'Observable'.

据此:

Module '"C:/Users/Gabriel/stack/School/HVA/JAAR 2/YOUTUBE TYPESCRIPT TUTORIAL/MyAngularApplication/We-chat/node_modules/angularfire2/database/index"' has no exported member 'FirebaseListObservable'

看来您使用的是angularFire 5.0,那么您需要检查一下followingFirebaseListObservable 已从包中删除并弃用。您需要执行以下操作:

import { AngularFireDatabase } from 'angularfire2/database';

constructor(afDb : AngularFireDatabase) 
{
  afDb.list<Item>('items').valueChanges().subscribe(console.log);
}

如果您仍想使用 FirebaseListObservable,则需要从 'angularfire2/database-deprecated'

导入它

点击此处查看包中的所有 类 angularfire2/database-depracted:

https://github.com/angular/angularfire2/tree/master/src/database-deprecated

是的,你可能正在使用 angular 5,它正在被删除并替换为 AngularFireList 尝试用 AngularFireList 替换 FirebaseListObservable。