我按照here的说明试用Firebase Firestore:
在app.component.ts文件的以下代码块中,出现以下错误:
[ts]找不到名称'Item'。
import { Component } from '@angular/core';
import { AngularFirestore, AngularFirestoreDocument } from 'angularfire2/firestore';
import { Observable } from 'rxjs/Observable';
@Component({
selector: 'app-root',
template: `
<div>
{{ (item | async)?.name }}
</div>
`
})
export class AppComponent {
private itemDoc: AngularFirestoreDocument<Item>;
item: Observable<Item>;
constructor(private afs: AngularFirestore) {
this.itemDoc = afs.doc<Item>('items/1');
this.item = this.itemDoc.valueChanges();
}
update(item: Item) {
this.itemDoc.update(item);
}
}
我的问题是,他们在文档中使用的 Item 类型是什么?我应该在某处手动声明这种类型吗?或者我错过了其他什么?
答案 0 :(得分:2)
Item
是您希望返回的文档类型。例如,假设我正在尝试从firestore获取任务文档。
afs.doc<Task>('tasks/1');
此处,Task
是应返回的类型。您必须手动定义它。
interface Task {
title: string;
description: string;
}
所以在这个例子中,firestore应该返回一个像
这样的对象{
title: 'Task 1',
description: 'My first task'
}
由于某些原因,这些文件没有定义项目。它很可能是从某个地方导入的。为简洁起见,他们可能没有将其包含在进口中。
答案 1 :(得分:0)
您找到答案了吗?我遇到了同样的问题,对我来说,作为一个初学者来理解它有点棘手,但最终还是有效。
“ Item”确实是您必须定义的接口。我在同一个.ts文件中定义了它(但我想我可以通过引用它在其他文件中正确地做到这一点...
在import和@Component之间:
AKTIVAN = 1
,然后在导出类AppComponent块中
Proizvod
等
它对我有用,我可以通过这种方式从firestore中获取数据