我有一个在 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/