具有 Cloud Functions for Firebase 的自定义观察者

Posted

技术标签:

【中文标题】具有 Cloud Functions for Firebase 的自定义观察者【英文标题】:Custom Observer with Cloud Functions for Firebase 【发布时间】:2017-07-29 22:13:09 【问题描述】:

我在 Firebase 数据库中有数据,我目前从 ios 应用程序中观察到这些数据。我想使用 Firebase 函数创建自己的 observe 函数,该函数在返回数据之前从单独的数据库中提取。

有没有办法重新创建我自己版本的 Firebase API 的观察方法?这就是我目前所拥有的

exports.onChildAdded = functions.https.onRequest((request, response) => 

    var ref = firebase.database().ref("data");
    ref.on("child_added", function(snapshot) 
        console.log(snapshot.key);

        var allData;
        allData.firebase = snapshot;

        //pull from other database
        allData.other = otherDatabaseData;

        response.send(allData);
    );
)

【问题讨论】:

【参考方案1】:

这不是您可以使用 Cloud Functions for Firebase 完成的事情。 HTTP 函数需要快速完成工作(默认超时一分钟,特殊配置最多 9 分钟)并向客户端返回单个响应。您不能使用on() 持续收听数据库中的特定位置。但是,您可以使用 once() 一次查询数据库并对结果进行处理。但这显然与"child_added" listeners 不一样。

这样做需要您运行自己的自定义服务器,以便您可以控制长时间运行的进程。

【讨论】:

很遗憾,我想我只需要在设备端发出两个请求。

以上是关于具有 Cloud Functions for Firebase 的自定义观察者的主要内容,如果未能解决你的问题,请参考以下文章

Cloud Functions 返回 403 错误也具有 Cloud Functions Invoker 权限

如何使用 Google Python Client for Cloud Functions 获取 Google Cloud Functions 列表?

Cloud Functions for Firebase 超时

Cloud Functions for Firebase onWrite 超时

具有 Cloud pubsub 的 Cloud Functions 触发消息排队

在 Cloud Functions for Firebase 中访问 db 数据