Firebase Firestore 是不是可以使用 Cloud 功能进行实时更新?
Posted
技术标签:
【中文标题】Firebase Firestore 是不是可以使用 Cloud 功能进行实时更新?【英文标题】:Is Firebase Firestore real-time updates using Cloud functions possible?Firebase Firestore 是否可以使用 Cloud 功能进行实时更新? 【发布时间】:2021-02-13 19:47:10 【问题描述】:通过这个blog,我可以看到我的应用最好使用 Firebase Cloud 功能用于 Firebase Firestore,而不是使用客户端 SDK 直接访问 Firestore。
我可以使用get()
实现Firestore READ 操作,使用set()
或update()
实现WRITE 操作&
使用delete()
方法删除。所有这些一次性操作都很好。
是否可以实现addSnapshotListener
来获取实时更新?如果是,怎么做?
【问题讨论】:
【参考方案1】:虽然从技术上讲可以使用addSnapshotListener
,但在很多用例中这是有意义的。
Cloud Functions 的生命周期很短,最长为 9 分钟,因此不太适合需要长时间监听数据库的场景。
通常,您需要定义一个单独的云函数来响应您本来想听的内容。
【讨论】:
【参考方案2】:实时侦听器与 Cloud Functions 的工作方式不兼容。函数只能运行有限的时间,并在超时到期后关闭。数据库侦听器是不确定的,并且将继续侦听直到它们被删除。如果在函数内部添加监听,在函数超时后系统仍会关闭。
我不清楚为什么在云函数中需要一个监听器,但考虑到函数的工作方式,这几乎肯定不是正确的做法。
【讨论】:
以上是关于Firebase Firestore 是不是可以使用 Cloud 功能进行实时更新?的主要内容,如果未能解决你的问题,请参考以下文章
(firebase.firestore 不是函数)尝试在 Firestore 中创建集合时
尝试初始化 Cloud Firestore 时,firebase.firestore() 不是函数
尝试初始化 Cloud Firestore 时,firebase.firestore() 不是函数
Firestore 是不是有 Dart 接口 - 使用 https://firebase.google.com/docs/firestore/quickstart 中的 API?