在 Cloud Function 中使用 firebase-admin/firestore 需要很长时间

问题描述 投票:0回答:0

我使用

cloud function
firestore
来构建 REST api。它曾经按预期工作。但它从昨天开始就表现得很奇怪:所有函数执行了 1 分钟,并出现“超时”错误。奇怪的是我没有对函数的源代码做任何更改。

我开始调试,发现每次与 firestore 的交互都卡住了很长时间。我部署了一个新功能来测试。

代码如下:

const admin = require('firebase-admin');
admin.initializeApp();
const db = admin.firestore();

exports.test = functions.region("asia-east1").https.onRequest(async (req, res) => {
    try {
        console.log('function started---');

        const getFloors = await db.collection('floors').get();
        if (getFloors.empty) return res.send([]);

        console.log('check getFloors---');
        console.log(getFloors.docs.map(floor => floor.data()));

        return res.send(getFloors.docs.map(floor => floor.data()));
    }
    catch (err) {
        console.log(err);
        return res.status(500).send(`error :${err}`);
    }
})

这只是一个带有 firestore 的简单

get()
。为了确保我的代码中没有错误的逻辑,我用
try{}catch{}
包装它。这是我调用此函数后的日志:

如你所见,我在12:36:06调用了这个函数,然后它在

12:36:09
写了function started---。然后函数在 1 分钟后于 12:37:06 以“错误”结束。最后,firestore
get()
12:38:37 作出回应。
await db...get()
需要 2.5 分钟。

我不知道为什么仅仅一个简单的获取就需要这么长时间。有人可以给我一些建议吗?谢谢!

google-cloud-firestore google-cloud-functions firebase-admin
© www.soinside.com 2019 - 2024. All rights reserved.