执行简单操作时,Firebase功能达到超时

时间:2018-11-01 20:53:22

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

我正在开发一个firebase函数,该函数从firebase实时数据库中获取一些数据。由于必须从多个节点检索数据,因此我填写了一系列数据库请求承诺。下面是代码:

exports.function = functions.database.ref('/nodeA/{nodeBId}/nodeC/{nodeDId}').onCreate(async (snapshot, context) => {

    let userKeysSnapshot = await admin.database().ref(`/nodeA/${nodeBId}/nodeE`).once('value'); 
    let userKeys = Object.keys(userKeysSnapshot.val());

    let promises = [];
    for (var i = 0; i < userKeys .length; i++) {
        console.log("Before push"); // printed in firebase journal
        promises.push(admin.database().ref('/users/'+ userKeys [i] + '/node2').once('value'));    // <= execution seems to be blocked here
        console.log("After push");  // never printed in firebase journal
    }

    let snapshots = await Promise.all(getDeviceTokensPromises);

    ...
});

我在push操作周围添加了一些控制台日志,结果是在循环的第一次迭代中我仅获得了第一个日志。此外,在firebase函数日志中,我可以看到函数达到超时。

Firebase日志:

4:56:43.818 PM functionName   Function execution took 60003 ms, finished with status: 'timeout'
4:55:44.524 PM functionName   Before push

您知道发生了什么吗?

0 个答案:

没有答案