有人可以帮忙解决这个问题吗?我正在通过 firebase 制作 CRUD 应用程序,而且我是 ts 和 firebase 的新手。请帮助我,我正在为此工作几天。谢谢
我的 ts 文件:
import { Injectable } from '@angular/core';
import { Item } from './item';
import { AngularFireObject, AngularFireList, AngularFireDatabase } from 'angularfire2/database';
import * as firebase from 'firebase';
@Injectable()
export class ItemService {
private basePath: string = '/items';
items: AngularFireList<Item[]> = null;
item: AngularFireObject<Item> = null;
constructor(private db: AngularFireDatabase) { }
getItemsList(query={}): AngularFireList<Item[]> {
this.items = this.db.list('items', ref => ref.orderByChild('value'));
return this.items
}
// Return a single observable item
getItem(key: string): AngularFireObject<Item> {
const itemPath = `${this.basePath}/${key}`;
this.item = this.db.object(itemPath)
return this.item
}
createItem(item: Item): void {
this.items.push(item) <--- here is the error
.catch(error => this.handleError(error))
}
// Update an existing item
updateItem(key: string, value: any): void {
this.items.update(key, value)
.catch(error => this.handleError(error))
}
// Deletes a single item
deleteItem(key: string): void {
this.items.remove(key)
.catch(error => this.handleError(error))
}
// Deletes the entire list of items
deleteAll(): void {
this.items.remove()
.catch(error => this.handleError(error))
}
// Default error handling for all actions
private handleError(error) {
console.log(error)
}
}
错误在 createItem() 上,我的控制台看起来像这样
src/app/items/shared/item.service.ts(31,19) 中的错误:错误 TS2345:“Item”类型的参数不可分配给“Item[]”类型的参数。“Item”类型缺少“Item[]”类型的以下属性:length、pop、push、concat 等 26 个。