Firebase函数引发无法修复的错误

时间:2020-08-29 03:54:59

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

我正在调用以下Firebase函数:

exports.getUserRecord = functions.https.onCall(async (data, context) => {
    try {
        //This successfully logs an existing uid in firestore, it should be retrievable
        console.log(context.auth.uid)

        const doc = admin.firestore().collection('user').doc(context.auth.uid);
        const res = await doc.get() //Isolated it down to this line that is failing
        return res
    } catch (err) {
        console.log(err)
        throw new functions.https.HttpsError('unavailable', 'some error message');
    }
});

调用此函数时,我在客户端上收到以下错误:

POST https://us-central1-xxx-xxx.cloudfunctions.net/getUserRecord 500
Uncaught (in promise) Error: INTERNAL

在服务器日志上,我看到此错误:

Unhandled error function error(...args) {
    write(entryFromArgs('ERROR', args));
} 

我想知道我的错误记录行都没有出现错误,并且是什么导致了该错误?

编辑:我也尝试在catch块中记录其他内容,但它们没有出现,似乎有错误,但是代码无法以某种方式进入catch块。

我还看到了this post,这似乎表明这是在Firebase功能3.9.1中修复的问题,但是我已经升级并且仍然存在此问题

1 个答案:

答案 0 :(得分:2)

在v3.11.0上遍历了onCall的firebase-functions代码,自修复以来,我在代码中看不到任何其他与此相关的问题

https://github.com/firebase/firebase-functions/issues/757

与@Matt讨论过node_module版本之后,我们发现问题与最初完成升级后没有更新到最新的node_modules有关。

为以后遇到此问题的任何人提供的提示

如果要将此模块更新为最新版本,请确保执行以下操作以覆盖所有基础,

查看node_modules/firebase-functions/package.json属性version,以确保安装了正确的版本。

还要查看您的根文件夹package.json和package-lock.json,以确保正确的版本是最新的。

如果v3.9.1或更高版本中没有任何内容,请执行以下操作,

    rm -rf node_modules
    npm i firebase-functions@latest --save
    

然后,再次仔细检查所有内容以确保一切正常。