Firebase函数抛出无法捕获的错误



我正在调用以下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块。

我也看到了这篇帖子,它似乎表明这是一个在firebase功能3.9.1中修补的问题,但我已经升级,仍然有这个问题

在v3.11.0中浏览了onCall的firebase函数代码,自从修复以来,我在代码中没有看到任何其他可能与此相关的问题

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

之后,再次仔细检查一切,确保一切正常。

相关内容

  • 没有找到相关文章

最新更新