Я пытаюсь импортировать FirebaseListObservable из angularfire2 / database
import { FirebaseListObservable } from 'angularfire2/database';
, где я получаю ошибка
[ts] Module '"/Users/user/Projects/Angular/Old/A4/chat-app/node_modules/angularfire2/database/index"'
не имеет экспортированного члена 'FirebaseListObservable '.
Я помещаю полную информацию о файле pakage.json моего приложения
{
"name": "chat-app",
"version": "0.0.0",
"scripts": {
"ng": "ng",
"start": "ng serve",
"build": "ng build",
"test": "ng test",
"lint": "ng lint",
"e2e": "ng e2e"
},
"private": true,
"dependencies": {
"@angular/animations": "^6.0.3",
"@angular/common": "^6.0.3",
"@angular/compiler": "^6.0.3",
"@angular/core": "^6.0.3",
"@angular/forms": "^6.0.3",
"@angular/http": "^6.0.3",
"@angular/platform-browser": "^6.0.3",
"@angular/platform-browser-dynamic": "^6.0.3",
"@angular/router": "^6.0.3",
"angular-firebase": "^1.1.4",
"angularfire2": "^5.0.2",
"core-js": "^2.5.4",
"firebase": "^5.5.3",
"rxjs": "^6.0.0",
"zone.js": "^0.8.26"
},
"devDependencies": {
"@angular-devkit/build-angular": "~0.6.8",
"@angular/cli": "^6.2.4",
"@angular/compiler-cli": "^6.0.3",
"@angular/language-service": "^6.0.3",
"@types/jasmine": "~2.8.6",
"@types/jasminewd2": "~2.0.3",
"@types/node": "~8.9.4",
"codelyzer": "~4.2.1",
"jasmine-core": "~2.99.1",
"jasmine-spec-reporter": "~4.2.1",
"karma": "~1.7.1",
"karma-chrome-launcher": "~2.2.0",
"karma-coverage-istanbul-reporter": "~2.0.0",
"karma-jasmine": "~1.1.1",
"karma-jasmine-html-reporter": "^0.2.2",
"protractor": "~5.3.0",
"ts-node": "~5.0.1",
"tslint": "~5.9.1",
"typescript": "~2.7.2"
}
}
Я импортирую FirebaseListObservable в мой файл службы.Я также добавляю данные файла службы
chat.service.ts
import { Injectable } from '@angular/core';
import { AngularFireDatabase } from 'angularfire2/database';
import { FirebaseListObservable } from 'angularfire2/database';
import { AngularFireAuth } from 'angularfire2/auth';
import { Observable } from 'rxjs';
import { AuthService } from '../services/auth.service';
import * as firebase from 'firebase/app';
import { ChatMessage } from '../models/chat-message.model';
@Injectable()
export class ChatService {
user: firebase.User;
chatMessages: FirebaseListObservable<ChatMessage[]>;
chatMessage: ChatMessage;
userName: Observable<string>;
constructor( private db: AngularFireDatabase , private afAuth: AngularFireAuth ) { }
getUser() {
const userId = this.user.uid;
const path = `/users/${userId}`;
return this.db.object(path);
}
sendMessage(msg: string) {
const timestamp = this.getTimeStamp();
const email = 'biky700@gmail.com';
this.chatMessages = this.getMessages();
this.chatMessages.push({
message: msg,
timeSent: timestamp,
userName: 'Anurag Ranjan',
email: email });
}
getMessages(): FirebaseListObservable<ChatMessage[]> {
// query to create our message feed binding
return this.db.list('messages', {
query: {
limitToLast: 25,
orderByKey: true
}
});
}
getTimeStamp() {
const now = new Date();
const date = now.getUTCFullYear() + '/' +
(now.getUTCMonth() + 1) + '/' +
now.getUTCDate();
const time = now.getUTCHours() + ':' +
now.getUTCMinutes() + ':' +
now.getUTCSeconds();
return (date + ' ' + time);
}
}
}
Я также получаю две другие ошибки в моем вышеупомянутом чате chat.service.ts код
первая ошибка
ОШИБКА в src / app / services / chat.service.ts (63,1): ошибка TS1128: объявление или заявлениеожидается.
вторая ошибка
В файле chat.service.ts указан код -:
getMessages(): FirebaseListObservable<ChatMessage[]> {
// query to create our message feed binding
return this.db.list('messages', {
query: {
limitToLast: 25,
orderByKey: true
}
});
}
код указан нижеприходит с красной линией и когда я наведу на них сообщение, показано
Аргумент типа '{query: {limitToLast: number;orderByKey: логическое значение;};} 'нельзя назначить параметру типа' QueryFn '.Объектный литерал может указывать только известные свойства, а «запрос» не существует в типе «QueryFn».
query: {
limitToLast: 25,
orderByKey: true
}
ошибка 3
проблема при импортеFirebaseListObservable, о котором я упоминал вверху