代码之家  ›  专栏  ›  技术社区  ›  Matt

Firebase函数未调用(500内部错误)

  •  0
  • Matt  · 技术社区  · 5 年前

    我正在调用以下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 块,但它们没有出现,似乎有错误,但代码没有输入 抓住 以某种方式阻止。

    我也看到 this post 这似乎表明这是firebase函数3.9.1中修补的问题,但我已经升级,仍然存在这个问题

    0 回复  |  直到 5 年前
        1
  •  2
  •   Edward Romero    5 年前

    在v3.11.0中浏览了nCall的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
        
    

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

    推荐文章