【问题标题】:Error: function crashed out of request scope Function killed错误:函数在请求范围外崩溃 函数被杀死
【发布时间】:2018-01-16 22:30:18
【问题描述】:

当我使用谷歌云功能在 Firebase 中导入超过 300 条记录时,出现错误:

  • 错误:函数在请求范围外崩溃 函数被杀死。
  • 函数执行耗时 31903 毫秒,完成状态为:“连接错误”

【问题讨论】:

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


    【解决方案1】:

    你可能已经超过了限制,请查看https://firebase.google.com/docs/database/usage/limits

    如果是这种情况,您可以使用多个数据库。

    【讨论】:

      【解决方案2】:

      看不到您的代码,我只能猜测。 “函数在请求范围之外崩溃”表示云函数在异步函数完成之前已经完成。有关处理异步函数和承诺的文档,请参阅: https://firebase.google.com/docs/functions/terminate-functions

      仔细查看您的回报。确保不要忘记将承诺返回给函数。有关示例,另请参见此处:https://github.com/firebase/firebase-functions/issues/18#issuecomment-288375709

      【讨论】:

      • My Cloud Function 的异步函数日志总是显示函数先完成,然后异步 promise 回来。
      • @ThomasDavidKehoe 1) 日志文件中的顺序并不总是正确的。检查时间戳。 2)当我在firebase控制台(函数日志)上检查日志文件时,异步调用的输出总是在“函数执行开始”和“函数执行花费x毫秒......”之间。如果不是这种情况,我建议检查所有异步调用(如果你有多个异步调用,可以使用 Promis.all)如果你真的把它们传回去。否则在我的实验经验中,云功能可能会工作或超时。
      • 那一行“确保兑现承诺”。帮助了我
      【解决方案3】:

      我遇到了同样的问题,结果是我在项目中使用的 mysql 连接出现了问题。

      在这种情况下,我使用了https://www.npmjs.com/package/mysql2,系统正在失去与数据库的连接。

      不清楚它发生在哪里,我收到以下错误并且没有迹象表明问题发生在哪里。 - 错误:函数在请求范围外崩溃 函数被杀死。 - 函数执行耗时 31903 毫秒,完成状态为:“连接错误”

      在数据库调用周围放置 try..catch 可以显示正确的错误和发生的位置。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-02-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-11-28
        • 1970-01-01
        • 2017-08-11
        • 2015-04-24
        相关资源
        最近更新 更多