node.js - 在 firestore 中,连接用户调用云函数从云 firestore 获取数据的更好方法是什么?

标签 node.js firebase google-cloud-firestore

我有一个在 Cloud Firestore 中存储数据的网站。每分钟,当我使用各种 API 并在其中存储新数据时,数据库就会更新。

我需要每分钟向用户提供更新的数据。目前,我的浏览器每分钟都会进行一次新的 Cloud Function 调用,然后调用 Cloud Firestore 并获取新数据。然而,想象一下,如果用户让浏览器整天保持打开状态,这将导致 1,440 个请求。

Cloud Functions 仅免费为我提供 2,000,000 个请求,如果我有很多用户,这些请求很快就会被吃完。有没有更好的方法让我每分钟向用户提供这些数据而不耗尽我的 Cloud Functions 配额?也许我可以创建自己的套接字并让用户连接到它?不过我必须看看如何每分钟更新该套接字而不增加太多配额。

最佳答案

Firebase 允许您的客户直接连接到 Cloud Firestore,然后他们可以 listen for realtime updates 。这使他们不必轮询该数据,并且不需要云功能。

附加实时监听器可以像(来自文档)一样简单:

 db.collection("cities").doc("SF")
    .onSnapshot(function(doc) {
        console.log("Current data: ", doc.data());
    });

每当 /cities/SF 文档更新时,上面的 onSnapshot 回调就会触发。同样,您可以将监听器附加到整个集合。

关于node.js - 在 firestore 中,连接用户调用云函数从云 firestore 获取数据的更好方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50615543/

相关文章:

javascript - Socket.io:手动连接到 namespace 和从 namespace 断开连接

javascript - 使用 meteor-autoform 提交后创建文档

node.js - 如何使用 VSCode 通过 Firestore 触发器调试 Google Cloud Functions?

firebase - 如何在Firestore -Flutter中将所有文档从一个集合复制到另一个?

android - 刷新 token 时如何发送到服务器?

firebase - Firestore 安全访问角色系统

node.js - Express Gateway 禁用 TLSv1.0

node.js - 无法删除文件,我没有得到详细的 ENOENT

firebase - 如何从 Cloud Functions for Firebase 中读取和写入 Firebase 存储?

ios - 无法使用 Firebase 存储 UI 加载某些图像(SD Web 图像)