首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果我在云函数中实现onSnapshot实时侦听器来修复,它会花费更多吗?

如果我在云函数中实现onSnapshot实时侦听器来修复,它会花费更多吗?
EN

Stack Overflow用户
提问于 2020-04-19 19:32:36
回答 1查看 561关注 0票数 0

我有一个侦听器用于修复DB更改,每次发生更改,它都会自动获取,但是,如果我决定在云函数中实现它并从客户端应用程序调用它,它会花费更高的成本吗?即使用户不使用该应用程序,它也会运行24小时/7小时吗?

这是在客户端:

代码语言:javascript
复制
     firestore()
            .collection('Collection').doc().collection('public')
            .where('act', '==', 1)
            .orderBy('time', 'asc')
            .limit(10)
            .onSnapshot({
                error: (e) => this.setState({ errorMessage: e, loading: false }),
                next: (querySnapshot) => { this._calculateLocationDistance(querySnapshot) },
            });

此外,是否有必要在云功能中这样做呢?如果我把它放在客户端会有风险吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-04-19 19:54:08

在云函数中,不能真正有效地使用侦听器。云函数应该是无状态的。他们一次只提供一个请求,然后再清理。如果你试图使用一个侦听器,它就不会像你所期望的那样工作。云函数也不向请求者开放套接字。一旦发送了响应,连接就会关闭,因此无法保持其打开。

考虑到这些约束,函数通常只使用get()一次获取数据,并将结果返回给客户端。如果您想要实时结果,则应该在客户端上实现。

如果您使用的后端可以使套接字连接对客户端保持打开,那么在后端向客户端提供结果的侦听器也同样昂贵。在侦听器继续接收结果时,仍要为侦听器读取的每个文档收取文档读取费。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61310444

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档