【问题标题】:In firestore, better way for a connected user to get call a cloud function to get data from the cloud firestore?在 Firestore 中,连接用户调用云功能以从云 Firestore 获取数据的更好方法是什么?
【发布时间】:2018-05-31 01:50:56
【问题描述】:

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

我需要每分钟向用户提供这些更新的数据。目前,我拥有这样的功能,用户的浏览器每分钟都会进行一次新的 Cloud Function 调用,然后调用 Cloud Firestore 并获取新数据。然而,想象一下如果用户让他们的浏览器全天打开 - 这将导致 1,440 个请求。

Cloud Functions 只免费为我提供了 2,000,000 个请求,如果我有很多用户,这些请求很快就会被吃掉。有没有更好的方法让我每分钟都向用户提供这些数据,而不会耗尽我的 Cloud Functions 配额?也许我可以制作自己的 Socket 并让用户连接到它?虽然我必须看看如何在不增加太多配额的情况下每分钟更新该套接字。

【问题讨论】:

    标签: node.js firebase google-cloud-firestore


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 谢谢 - 我知道何时调用“分离侦听器”代码的最佳方式通常是什么?如果他们的计算机闲置了一个小时左右,我可能想将其分离。 . .或者如果他们的计算机进入睡眠状态。 . .或者如果用户关闭他们的手机。然后我必须弄清楚一旦他们回来后如何重新连接听众。虽然不太清楚如何做这些事情。
    • 这有点取决于手机,但通常你会绑定到操作系统的生命周期事件来附加/分离监听器。 IE。 stackoverflow.com/questions/8515936/…
    猜你喜欢
    • 2018-06-30
    • 2018-04-18
    • 2020-08-02
    • 1970-01-01
    • 1970-01-01
    • 2019-12-13
    • 2021-05-06
    • 2020-03-12
    相关资源
    最近更新 更多