我正在按照 here 的指示进行操作尝试 Firebase Firestore:
在 app.component.ts 文件中的以下代码块中,出现以下错误:
[ts] Cannot find name '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 类型是什么?我应该在某个地方手动声明这种类型吗?还是我还漏掉了其他东西?
最佳答案
Item
是您期望返回的文档的类型。例如,假设我正在尝试从 firestore 获取任务文档。
afs.doc<Task>('tasks/1');
这里,Task
是应该返回的类型。您必须手动定义它。
interface Task {
title: string;
description: string;
}
所以在这个例子中,firestore 应该返回一个类似的对象
{
title: 'Task 1',
description: 'My first task'
}
由于某种原因,这些文档没有定义 Item。它很可能是从某个地方进口的。为了简洁起见,他们可能没有将其包含在导入中。
关于angular - "[ts] Cannot find name ' 项目 '.",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47144166/