【问题标题】:Error in handleMessage: RangeError: Maximum call stack size exceededhandleMessage 中的错误:RangeError:超出最大调用堆栈大小
【发布时间】:2020-07-21 16:58:31
【问题描述】:

我在我的 firebase 函数项目中使用“kotlinx-serialization-runtime-js”。到目前为止,一切都按预期进行。但由于我正在使用:

val js = kotlinx.serialization.json.Json(JsonConfiguration.Stable)
             .kotlinx.serialization.stringify(result)

我无法在函数模拟器中本地运行它。启动时会显示在日志中:

Error in handleMessage: {"frb":{"cwd":"/home/drindt/.../functions","projectId":"c*******r-d*********t","triggerId":"","emulators":{},"socketPath":"/tmp/fire_emu_144610.sock"},"opts":{"nodeBinary":"/usr/bin/node","env":{"GOOGLE_APPLICATION_CREDENTIALS":"/home/drindt/.config/firebase/credentials.json"}}} => RangeError: Maximum call stack size exceeded: RangeError: Maximum call stack size exceeded
at extractTriggers (/home/drindt/.npm-packages/lib/node_modules/firebase-tools/lib/extractTriggers.js:2:32)

extractTriggers 的递归调用会导致问题。我在另一个文件中发现,当这个错误发生时,是因为导出了其他模块,而不仅仅是功能模块。我查看了 kotlin 编译的 js 文件确认了这一点。如果我从上面删除 stringify 一切正常。 如果我能得到一些帮助来解决这个问题,那就太好了。感谢您花时间阅读并帮助我。

【问题讨论】:

    标签: javascript firebase firebase-tools


    【解决方案1】:

    我在这里遇到了同样的问题,由于我还不能发表评论(没有足够的声誉),我将我的问题发布在这里,它的解决方案是:

    简而言之,对我的教训是

    不要在index.ts 中将export const 用于除函数之外的任何内容。

    所以对我来说它显示以下错误:

    functions: Maximum call stack size exceeded
    function was killed because it raised an unhandled error.
    

    当我查看firebase-debug.log 文件时,我发现错误源自extractTriggers.js,它位于:

    /Users/$name$/.cache/firebase/tools/lib/node_modules/firebase-tools/lib/extractTriggers.js
    

    但我仍然无法弄清楚根本原因是什么,所以我使用console.log 打印出在extractTriggers.js 中调用的函数名称:

    i  firestore: Firestore Emulator logging to firestore-debug.log
    i  ui: Emulator UI logging to ui-debug.log
    i  functions: Watching "/Users/****/Desktop/.../firebase-cloud-functions/functions" for Cloud Functions...
    >  ExtractTriggers for function options
    >  ExtractTriggers for function allowedHeaders
    >  ExtractTriggers for function 0
    >  ExtractTriggers for function 1
    >  ExtractTriggers for function 2
    >  ExtractTriggers for function credentials
    >  ExtractTriggers for function methods
    >  ExtractTriggers for function origin
    >  ExtractTriggers for function preflightContinue
    >  ExtractTriggers for function firebaseAdmin
    >  ExtractTriggers for function __esModule
    >  ExtractTriggers for function credential
    >  ExtractTriggers for function cert
    >  ExtractTriggers for function refreshToken
    >  ExtractTriggers for function applicationDefault
    >  ExtractTriggers for function SDK_VERSION
    >  ExtractTriggers for function Promise
    >  ExtractTriggers for function INTERNAL
    >  ExtractTriggers for function firebase_
    >  ExtractTriggers for function __esModule
    >  ExtractTriggers for function credential
    >  ExtractTriggers for function cert
    >  ExtractTriggers for function refreshToken
    >  ExtractTriggers for function applicationDefault
    >  ExtractTriggers for function SDK_VERSION
    >  ExtractTriggers for function Promise
    >  ExtractTriggers for function INTERNAL
    >  ExtractTriggers for function firebase_
    >  ExtractTriggers for function __esModule
    >  ExtractTriggers for function credential
    >  ExtractTriggers for function cert
    >  ExtractTriggers for function refreshToken
    >  ExtractTriggers for function applicationDefault
    >  ExtractTriggers for function SDK_VERSION
    >  ExtractTriggers for function Promise
    >  ExtractTriggers for function INTERNAL
    >  ExtractTriggers for function firebase_
    >  ExtractTriggers for function __esModule
    >  ExtractTriggers for function credential
    >  ExtractTriggers for function cert
    >  ExtractTriggers for function refreshToken
    >  ExtractTriggers for function applicationDefault
    >  ExtractTriggers for function SDK_VERSION
    >  ExtractTriggers for function Promise
    >  ExtractTriggers for function INTERNAL
    >  ExtractTriggers for function firebase_
    >  ExtractTriggers for function __esModule
    >  ExtractTriggers for function credential
    >  ExtractTriggers for function cert
    >  ExtractTriggers for function refreshToken
    >  ExtractTriggers for function applicationDefault
    >  ExtractTriggers for function SDK_VERSION
    >  ExtractTriggers for function Promise
    >  ExtractTriggers for function INTERNAL
    >  ExtractTriggers for function firebase_
    >  ExtractTriggers for function __esModule
    >  ExtractTriggers for function credential
    >  ExtractTriggers for function cert
    >  ExtractTriggers for function refreshToken
    >  ExtractTriggers for function applicationDefault
    >  ExtractTriggers for function SDK_VERSION
    >  ExtractTriggers for function Promise
    >  ExtractTriggers for function INTERNAL
    >  ExtractTriggers for function firebase_
    >  ExtractTriggers for function __esModule
    >  ExtractTriggers for function credential
    >  ExtractTriggers for function cert
    >  ExtractTriggers for function refreshToken
    >  ExtractTriggers for function applicationDefault
    >  ExtractTriggers for function SDK_VERSION
    >  ExtractTriggers for function Promise
    >  ExtractTriggers for function INTERNAL
    >  ExtractTriggers for function firebase_
    >  ExtractTriggers for function __esModule
    >  ExtractTriggers for function credential
    >  ExtractTriggers for function cert
    >  ExtractTriggers for function refreshToken
    >  ExtractTriggers for function applicationDefault
    >  ExtractTriggers for function SDK_VERSION
    >  ExtractTriggers for function Promise
    >  ExtractTriggers for function INTERNAL
    >  ExtractTriggers for function firebase_
    >  ExtractTriggers for function __esModule
    >  ExtractTriggers for function credential
    >  ExtractTriggers for function cert
    >  ExtractTriggers for function refreshToken
    >  ExtractTriggers for function applicationDefault
    >  ExtractTriggers for function SDK_VERSION
    >  ExtractTriggers for function Promise
    >  ExtractTriggers for function INTERNAL
    >  ExtractTriggers for function firebase_
    >  ExtractTriggers for function __esModule
    >  ExtractTriggers for function credential
    >  ExtractTriggers for function cert
    >  ExtractTriggers for function refreshToken
    >  ExtractTriggers for function applicationDefault
    >  ExtractTriggers for function SDK_VERSION
    >  ExtractTriggers for function Promise
    >  ExtractTriggers for function INTERNAL
    >  ExtractTriggers for function firebase_
    >  ExtractTriggers for function __esModule
    >  ExtractTriggers for function credential
    >  ExtractTriggers for function cert
    >  ExtractTriggers for function refreshToken
    >  ExtractTriggers for function applicationDefault
    >  ExtractTriggers for function SDK_VERSION
    >  ExtractTriggers for function Promise
    >  ExtractTriggers for function INTERNAL
    >  ExtractTriggers for function firebase_
    >  ExtractTriggers for function __esModule
    >  ExtractTriggers for function credential
    >  ExtractTriggers for function cert
    >  ExtractTriggers for function refreshToken
    >  ExtractTriggers for function applicationDefault
    >  ExtractTriggers for function SDK_VERSION
    >  ExtractTriggers for function Promise
    >  ExtractTriggers for function INTERNAL
    >  ExtractTriggers for function firebase_
    >  ExtractTriggers for function __esModule
    >  ExtractTriggers for function credential
    >  ExtractTriggers for function cert
    >  ExtractTriggers for function refreshToken
    >  ExtractTriggers for function applicationDefault
    >  ExtractTriggers for function SDK_VERSION
    >  ExtractTriggers for function Promise
    >  ExtractTriggers for function INTERNAL
    >  ExtractTriggers for function firebase_
    >  ExtractTriggers for function __esModule
    >  ExtractTriggers for function credential
    >  ExtractTriggers for function cert
    >  ExtractTriggers for function refreshToken
    >  ExtractTriggers for function applicationDefault
    >  ExtractTriggers for function SDK_VERSION
    >  ExtractTriggers for function Promise
    >  ExtractTriggers for function INTERNAL
    >  ExtractTriggers for function firebase_
    >  ExtractTriggers for function __esModule
    >  ExtractTriggers for function credential
    >  ExtractTriggers for function cert
    >  ExtractTriggers for function refreshToken
    >  ExtractTriggers for function applicationDefault
    >  ExtractTriggers for function SDK_VERSION
    >  ExtractTriggers for function Promise
    >  ExtractTriggers for function INTERNAL
    >  ExtractTriggers for function firebase_
    >  ExtractTriggers for function __esModule
    >  ExtractTriggers for function credential
    >  ExtractTriggers for function cert
    >  ExtractTriggers for function refreshToken
    >  ExtractTriggers for function applicationDefault
    >  ExtractTriggers for function SDK_VERSION
    >  ExtractTriggers for function Promise
    >  ExtractTriggers for function INTERNAL
    >  ExtractTriggers for function firebase_
    >  ExtractTriggers for function __esModule
    >  ExtractTriggers for function credential
    >  ExtractTriggers for function cert
    >  ExtractTriggers for function refreshToken
    >  ExtractTriggers for function applicationDefault
    >  ExtractTriggers for function SDK_VERSION
    >  ExtractTriggers for function Promise
    >  ExtractTriggers for function INTERNAL
    >  ExtractTriggers for function firebase_
    >  ExtractTriggers for function __esModule
    >  ExtractTriggers for function credential
    >  ExtractTriggers for function cert
    >  ExtractTriggers for function refreshToken
    >  ExtractTriggers for function applicationDefault
    >  ExtractTriggers for function SDK_VERSION
    >  ExtractTriggers for function Promise
    >  ExtractTriggers for function INTERNAL
    >  ExtractTriggers for function firebase_
    >  ExtractTriggers for function __esModule
    >  ExtractTriggers for function credential
    >  ExtractTriggers for function cert
    >  ExtractTriggers for function refreshToken
    >  ExtractTriggers for function applicationDefault
    >  ExtractTriggers for function SDK_VERSION
    >  ExtractTriggers for function Promise
    >  ExtractTriggers for function INTERNAL
    >  ExtractTriggers for function firebase_
    >  ExtractTriggers for function __esModule
    >  ExtractTriggers for function credential
    >  ExtractTriggers for function cert
    >  ExtractTriggers for function refreshToken
    >  ExtractTriggers for function applicationDefault
    >  ExtractTriggers for function SDK_VERSION
    >  ExtractTriggers for function Promise
    >  ExtractTriggers for function INTERNAL
    >  ExtractTriggers for function firebase_
    >  ExtractTriggers for function __esModule
    >  ExtractTriggers for function credential
    >  ExtractTriggers for function cert
    >  ExtractTriggers for function refreshToken
    >  ExtractTriggers for function applicationDefault
    >  ExtractTriggers for function SDK_VERSION
    >  ExtractTriggers for function Promise
    >  ExtractTriggers for function INTERNAL
    >  ExtractTriggers for function firebase_
    >  ExtractTriggers for function __esModule
    >  ExtractTriggers for function credential
    >  ExtractTriggers for function cert
    >  ExtractTriggers for function refreshToken
    >  ExtractTriggers for function applicationDefault
    >  ExtractTriggers for function SDK_VERSION
    >  ExtractTriggers for function Promise
    >  ExtractTriggers for function INTERNAL
    >  ExtractTriggers for function firebase_
    >  ExtractTriggers for function __esModule
    >  ExtractTriggers for function credential
    >  ExtractTriggers for function cert
    >  ExtractTriggers for function refreshToken
    >  ExtractTriggers for function applicationDefault
    >  ExtractTriggers for function SDK_VERSION
    >  ExtractTriggers for function Promise
    >  ExtractTriggers for function INTERNAL
    >  ExtractTriggers for function firebase_
    >  ExtractTriggers for function __esModule
    >  ExtractTriggers for function credential
    >  ExtractTriggers for function cert
    >  ExtractTriggers for function refreshToken
    >  ExtractTriggers for function applicationDefault
    >  ExtractTriggers for function SDK_VERSION
    >  ExtractTriggers for function Promise
    >  ExtractTriggers for function INTERNAL
    >  ExtractTriggers for function firebase_
    >  ExtractTriggers for function __esModule
    >  ExtractTriggers for function credential
    >  ExtractTriggers for function cert
    >  ExtractTriggers for function refreshToken
    >  ExtractTriggers for function applicationDefault
    >  ExtractTriggers for function SDK_VERSION
    >  ExtractTriggers for function Promise
    >  ExtractTriggers for function INTERNAL
    >  ExtractTriggers for function firebase_
    >  ExtractTriggers for function __esModule
    >  ExtractTriggers for function credential
    >  ExtractTriggers for function cert
    >  ExtractTriggers for function refreshToken
    >  ExtractTriggers for function applicationDefault
    >  ExtractTriggers for function SDK_VERSION
    >  ExtractTriggers for function Promise
    >  ExtractTriggers for function INTERNAL
    >  ExtractTriggers for function firebase_
    >  ExtractTriggers for function __esModule
    >  ExtractTriggers for function credential
    >  ExtractTriggers for function cert
    >  ExtractTriggers for function refreshToken
    >  ExtractTriggers for function applicationDefault
    >  ExtractTriggers for function SDK_VERSION
    >  ExtractTriggers for function Promise
    >  ExtractTriggers for function INTERNAL
    >  ExtractTriggers for function firebase_
    >  ExtractTriggers for function __esModule
    >  ExtractTriggers for function credential
    >  ExtractTriggers for function cert
    >  ExtractTriggers for function refreshToken
    >  ExtractTriggers for function applicationDefault
    >  ExtractTriggers for function SDK_VERSION
    >  ExtractTriggers for function Promise
    >  ExtractTriggers for function INTERNAL
    >  ExtractTriggers for function firebase_
    >  ExtractTriggers for function __esModule
    >  ExtractTriggers for function credential
    >  ExtractTriggers for function cert
    >  ExtractTriggers for function refreshToken
    >  ExtractTriggers for function applicationDefault
    >  ExtractTriggers for function SDK_VERSION
    >  ExtractTriggers for function Promise
    >  ExtractTriggers for function INTERNAL
    >  ExtractTriggers for function firebase_
    >  ExtractTriggers for function __esModule
    >  ExtractTriggers for function credential
    >  ExtractTriggers for function cert
    >  ExtractTriggers for function refreshToken
    >  ExtractTriggers for function applicationDefault
    >  ExtractTriggers for function SDK_VERSION
    >  ExtractTriggers for function Promise
    >  ExtractTriggers for function INTERNAL
    >  ExtractTriggers for function firebase_
    >  ExtractTriggers for function __esModule
    >  ExtractTriggers for function credential
    >  ExtractTriggers for function cert
    >  ExtractTriggers for function refreshToken
    >  ExtractTriggers for function applicationDefault
    >  ExtractTriggers for function SDK_VERSION
    >  ExtractTriggers for function Promise
    >  ExtractTriggers for function INTERNAL
    >  ExtractTriggers for function firebase_
    >  ExtractTriggers for function __esModule
    >  ExtractTriggers for function credential
    >  ExtractTriggers for function cert
    >  ExtractTriggers for function refreshToken
    >  ExtractTriggers for function applicationDefault
    >  ExtractTriggers for function SDK_VERSION
    >  ExtractTriggers for function Promise
    >  ExtractTriggers for function INTERNAL
    >  ExtractTriggers for function firebase_
    >  ExtractTriggers for function __esModule
    >  ExtractTriggers for function credential
    >  ExtractTriggers for function cert
    >  ExtractTriggers for function refreshToken
    >  ExtractTriggers for function applicationDefault
    >  ExtractTriggers for function SDK_VERSION
    >  ExtractTriggers for function Promise
    >  ExtractTriggers for function INTERNAL
    >  ExtractTriggers for function firebase_
    >  ExtractTriggers for function __esModule
    >  ExtractTriggers for function credential
    >  ExtractTriggers for function cert
    >  ExtractTriggers for function refreshToken
    >  ExtractTriggers for function applicationDefault
    >  ExtractTriggers for function SDK_VERSION
    >  ExtractTriggers for function Promise
    >  ExtractTriggers for function INTERNAL
    >  ExtractTriggers for function firebase_
    >  ExtractTriggers for function __esModule
    >  ExtractTriggers for function credential
    >  ExtractTriggers for function cert
    >  ExtractTriggers for function refreshToken
    >  ExtractTriggers for function applicationDefault
    >  ExtractTriggers for function SDK_VERSION
    >  ExtractTriggers for function Promise
    >  ExtractTriggers for function INTERNAL
    >  ExtractTriggers for function firebase_
    >  ExtractTriggers for function __esModule
    >  ExtractTriggers for function credential
    >  ExtractTriggers for function cert
    >  ExtractTriggers for function refreshToken
    >  ExtractTriggers for function applicationDefault
    >  ExtractTriggers for function SDK_VERSION
    >  ExtractTriggers for function Promise
    >  ExtractTriggers for function INTERNAL
    >  ExtractTriggers for function firebase_
    >  ExtractTriggers for function __esModule
    >  ExtractTriggers for function credential
    >  ExtractTriggers for function cert
    >  ExtractTriggers for function refreshToken
    >  ExtractTriggers for function applicationDefault
    >  ExtractTriggers for function SDK_VERSION
    >  ExtractTriggers for function Promise
    >  ExtractTriggers for function INTERNAL
    >  ExtractTriggers for function firebase_
    >  ExtractTriggers for function __esModule
    >  ExtractTriggers for function credential
    >  ExtractTriggers for function cert
    >  ExtractTriggers for function refreshToken
    >  ExtractTriggers for function applicationDefault
    >  ExtractTriggers for function SDK_VERSION
    >  ExtractTriggers for function Promise
    >  ExtractTriggers for function INTERNAL
    >  ExtractTriggers for function firebase_
    >  ExtractTriggers for function __esModule
    >  ExtractTriggers for function credential
    >  ExtractTriggers for function cert
    >  ExtractTriggers for function refreshToken
    >  ExtractTriggers for function applicationDefault
    >  ExtractTriggers for function SDK_VERSION
    >  ExtractTriggers for function Promise
    >  ExtractTriggers for function INTERNAL
    >  ExtractTriggers for function firebase_
    >  ExtractTriggers for function __esModule
    >  ExtractTriggers for function credential
    >  ExtractTriggers for function cert
    >  ExtractTriggers for function refreshToken
    >  ExtractTriggers for function applicationDefault
    >  ExtractTriggers for function SDK_VERSION
    >  ExtractTriggers for function Promise
    >  ExtractTriggers for function INTERNAL
    >  ExtractTriggers for function firebase_
    >  ExtractTriggers for function __esModule
    >  ExtractTriggers for function credential
    >  ExtractTriggers for function cert
    >  ExtractTriggers for function refreshToken
    >  ExtractTriggers for function applicationDefault
    >  ExtractTriggers for function SDK_VERSION
    >  ExtractTriggers for function Promise
    >  ExtractTriggers for function INTERNAL
    >  ExtractTriggers for function firebase_
    >  ExtractTriggers for function __esModule
    >  ExtractTriggers for function credential
    >  ExtractTriggers for function cert
    >  ExtractTriggers for function refreshToken
    >  ExtractTriggers for function applicationDefault
    >  ExtractTriggers for function SDK_VERSION
    >  ExtractTriggers for function Promise
    >  ExtractTriggers for function INTERNAL
    >  ExtractTriggers for function firebase_
    >  ExtractTriggers for function __esModule
    >  ExtractTriggers for function credential
    >  ExtractTriggers for function cert
    >  ExtractTriggers for function refreshToken
    >  ExtractTriggers for function applicationDefault
    >  ExtractTriggers for function SDK_VERSION
    >  ExtractTriggers for function Promise
    >  ExtractTriggers for function INTERNAL
    >  ExtractTriggers for function firebase_
    >  ExtractTriggers for function __esModule
    >  ExtractTriggers for function credential
    >  ExtractTriggers for function cert
    >  ExtractTriggers for function refreshToken
    >  ExtractTriggers for function applicationDefault
    >  ExtractTriggers for function SDK_VERSION
    >  ExtractTriggers for function Promise
    >  ExtractTriggers for function INTERNAL
    >  ExtractTriggers for function firebase_
    >  ExtractTriggers for function __esModule
    >  ExtractTriggers for function credential
    >  ExtractTriggers for function cert
    >  ExtractTriggers for function refreshToken
    >  ExtractTriggers for function applicationDefault
    >  ExtractTriggers for function SDK_VERSION
    >  ExtractTriggers for function Promise
    >  ExtractTriggers for function INTERNAL
    >  ExtractTriggers for function firebase_
    >  ExtractTriggers for function __esModule
    >  ExtractTriggers for function credential
    >  ExtractTriggers for function cert
    >  ExtractTriggers for function refreshToken
    >  ExtractTriggers for function applicationDefault
    >  ExtractTriggers for function SDK_VERSION
    >  ExtractTriggers for function Promise
    >  ExtractTriggers for function INTERNAL
    >  ExtractTriggers for function firebase_
    >  ExtractTriggers for function __esModule
    >  ExtractTriggers for function credential
    >  ExtractTriggers for function cert
    >  ExtractTriggers for function refreshToken
    >  ExtractTriggers for function applicationDefault
    >  ExtractTriggers for function SDK_VERSION
    ⚠  functions: Maximum call stack size exceeded
    ⚠  Your function was killed because it raised an unhandled error.
    

    仔细看,发现重复是在函数名firebaseAdmin之后开始的。 我已经在 index.ts

    中导出了 firebase 管理实例
    import * as admin from 'firebase-admin';
    
    //...
    
    export const firebaseAdmin = admin;
    
    

    这是这一切的根本原因,只是删除该行,并在所有其他文件中使用单独的导入对我有用!

    【讨论】:

    • 当我遇到这个问题时,我正抓狂......我已经将我的项目减少到只有这 2 行,但它仍然失败。你找到导出管理员(或admin.initializeApp)的方法了吗?
    • 我认为您不需要在导入admin 的每个文件中调用admin.initializeApp,我刚刚在index.ts 中完成了一次,只需导入和使用导入即可直接在其他文件中。
    猜你喜欢
    • 2021-09-21
    • 2018-02-06
    • 2019-05-14
    • 2021-07-31
    • 2019-02-07
    • 2012-08-14
    • 1970-01-01
    相关资源
    最近更新 更多