javascript - Cloud Functions 写入 Firebase 实时数据库超时

标签 javascript firebase firebase-realtime-database google-cloud-functions

<分区>

我一得到 URL 就可以看到添加了一个新条目,但是请求挂起并超时。为什么?

const functions = require('firebase-functions');
const admin = require('firebase-admin');

admin.initializeApp(functions.config().firebase);

exports.add = functions.https.onRequest((request, response)=>
{
    var ref = admin.database().ref("jobs");
    var childRef = ref.push();
    childRef.set
    (
        {
            title: "test",
            pay: 100
        }
    );
})

代码基于以下示例。 https://firebase.google.com/docs/database/admin/save-data

结果

{"error":{"code":500,"status":"INTERNAL","message":"function execution attempt timed out"}}

最佳答案

由 HTTP 请求触发的 Cloud Functions 需要以 send()redirect()end() 结尾来终止它们>,否则它们将继续运行并达到超时。

来自terminate HTTP functions section of the documentation on HTTP triggers :

Always end an HTTP function with send(), redirect(), or end(). Otherwise, your function might to continue to run and be forcibly terminated by the system. See also Sync, Async and Promises.

因此,在您的示例中,您可以通过发送响应来结束请求:

exports.add = functions.https.onRequest((request, response)=>
{
    var ref = admin.database().ref("jobs");
    var childRef = ref.push();
    childRef.set
    (
        {
            title: "test",
            pay: 100
        }
    );
    response.status(200).send("OK!");
})

关于javascript - Cloud Functions 写入 Firebase 实时数据库超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47349894/

相关文章:

ios - 当应用程序从 Firebase 实时数据库接收数据时如何显示 UIActivityIndi​​cator

javascript - 查询对 firebase 中另一个对象内的日期进行排序

javascript - 网站被黑了——这段 Javascript 代码有什么作用?

javascript - 使用本地存储创建注册和登录页面

firebase - 当路径中的数据不存在时如何使用 Go Firebase-Admin SDK 检测空结果

android - 如何使 Firebase 存储仅供应用程序用户使用

ios - native 链接失败,重复符号 : '_main' while adding native Binding Dll and Xamarin. Firebase.iOS.Database

javascript - 使用 jquery localstorage 重新加载页面并显示消息

javascript - Bootstrap 模态目标内容未显示在模态主体中

Flutter/Firebase : Need to provide options, 未通过源部署到托管时