你能解释一下这对Firestore的意义吗?
使您的应用中的数据保持最新状态,而无需检索整个数据 数据库每次更新发生时,添加实时监听器。添加 应用程序的实时监听器会通过数据快照通知您 每当您的客户端应用收听数据时, 只检索新的更改。
它说的是这个还是其他?
this.budgets$ = this.budgetProvider.getSpecificBudgetGroupBudgets(data,
this.projectProvider.projectId).valueChanges();
答案 0 :(得分:1)
实时侦听器的行为与websockets相同,因此无需定期运行相同的查询以查看是否有任何数据发生了变化。
Get Realtime Updates with Cloud Firestore文档提供了一些很好的示例。这是其中之一:
db.collection("cities").doc("SF")
.onSnapshot(function(doc) {
console.log("Current data: ", doc.data());
});
onSnapshot
方法会为DocumentSnapshot
个事件附加一个侦听器。
答案 1 :(得分:1)
据我所知,在firestore docs中,他们谈论的是onSnapshot()
,它是一个实时监听器,get()
不是。 onSnapshot()
会收听这些单独的文档更改added
,removed
和modified
,您可以收听此doc中的每个案例。
并且Angularfire2
是通过这些firebase本机jsdk方法编写的库并执行相同操作但将返回Observables
。以下是官方doc所说的
AngularFirestoreCollection服务是本机Firestore SDK的CollectionReference和Query类型的包装器。它是一种通用服务,为您提供了一组用于操作和传输数据的强类型方法。此服务旨在用作@Injectable()。
以下是返回类型link
valueChanges(events?: firebase.firestore.DocumentChangeType[]): Observable<T[]>;
DocumentChangeType[]
有以下参数
export type DocumentChangeType = 'added' | 'removed' | 'modified';