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?

Firestore 分页 - 是不是有任何与 firebase 的 limitToLast 兼容的查询?

如何检查 Firebase Firestore 的数组中是不是存在元素?