【发布时间】:2018-11-30 09:29:34
【问题描述】:
您能告诉我如何在客户端代码(.ts 文件)中检测 Firestore db 节点的变化吗?我知道如何使用云功能做到这一点。但是如何在客户端代码中做到这一点?
Firestore 节点: projects/{id}/transactions/
我的要求是这样的:如果以上节点有任何变化,我需要升级提供者(即projectProvider)的共享属性值。我该怎么做?
举个例子:
onWrite 事件非常适合我的用例。但是如何在客户端.ts 文件中实现它呢?
这是node.js 云功能的实现。如何在客户端.ts 文件上进行这样的实现?
// Listen for any change on document `marie` in collection `users`
exports.myFunctionName = functions.firestore
.document('users/marie').onWrite((change, context) => {
// ... Your code here
});
注意:我将angularfire2 与我的ionic 3 应用程序一起使用。
【问题讨论】:
-
是否有充分的理由不为此使用 Cloud Functions?您可以使用 Node 中的 Web/Javascript SDK 来收听使用
onSnapshot的集合。您也可以使用 Admin SDK 执行此操作。但是,Javascript SDK 有一个名为querySnapshot的属性docChanges。这将允许您仅过滤已更改的文档并处理这些文档。如果这适合您的需要,我可以发布一些示例代码。 -
我了解云功能及其功能。但是我的用例在这里有所不同。如果firestore db有任何变化,我需要更新本地属性。所以我不能使用云功能,因为它不能访问客户端属性(
.ts)。我们不能在客户端代码中调用onWrite事件吗?我看到call functions直接方法。但它仅适用于HTTPS callable function。 @JasonBerryman firebase.google.com/docs/functions/callable -
可调用函数允许您从客户端应用程序中调用函数。它们不允许您像 Cloud Functions 那样监控其他客户端对数据库的更改。如果有帮助,我可以发布一些代码,让您可以监控集合并通知您更改。
-
是的,请继续说。谢谢@JasonBerryman
标签: angular typescript firebase ionic3 google-cloud-firestore