firebase函数模拟器未启动

firebase函数模拟器未启动,firebase,google-cloud-functions,firebase-tools,Firebase,Google Cloud Functions,Firebase Tools,正如大家所知,firebase CLI的新功能是本地仿真器(此处解释)() 因此,我已经更新了我的CLI,当我运行firebase模拟器:start时,我的函数代码中会出现此错误 kishan@kishans-Air functions % firebase emulators:start i emulators: Starting emulators: functions ⚠ Your requested "node" version "8" doesn't match your glob

正如大家所知,firebase CLI的新功能是本地仿真器(此处解释)()

因此,我已经更新了我的CLI,当我运行firebase模拟器:start时,我的函数代码中会出现此错误

kishan@kishans-Air functions % firebase emulators:start
i  emulators: Starting emulators: functions
⚠  Your requested "node" version "8" doesn't match your global version "10"
⚠  hosting: The hosting emulator is configured but there is no hosting configuration. Have you run firebase init hosting?
i  ui: Emulator UI logging to ui-debug.log
i  functions: Watching "/Users/kishan/Desktop/dilip/googlecloudfunctions/functions" for Cloud Functions...
⚠  TypeError: Cannot convert object to primitive value
    at Proxy.<anonymous> (/usr/local/lib/node_modules/firebase-tools/lib/emulator/functionsEmulatorRuntime.js:311:83)
    at Object.<anonymous> (/Users/kishan/Desktop/dilip/googlecloudfunctions/functions/lib/index.js:7:7)
    at Module._compile (internal/modules/cjs/loader.js:701:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:712:10)
    at Module.load (internal/modules/cjs/loader.js:600:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:539:12)
    at Function.Module._load (internal/modules/cjs/loader.js:531:3)
    at Module.require (internal/modules/cjs/loader.js:637:17)
    at require (internal/modules/cjs/helpers.js:22:18)
    at /usr/local/lib/node_modules/firebase-tools/lib/emulator/functionsEmulatorRuntime.js:661:33
⚠  We were unable to load your functions code. (see above)
   - It appears your code is written in Typescript, which must be compiled before emulation.
kishan@kishans-空气功能%firebase模拟器:启动
i模拟器:启动模拟器:函数
⚠  您请求的“节点”版本“8”与您的全局版本“10”不匹配
⚠  托管:已配置托管模拟器,但没有托管配置。你运行过firebase初始化托管吗?
i ui:Emulator ui记录到ui-debug.log
i功能:查看“/Users/kishan/Desktop/dilip/googlecloudfunctions/functions”中的云功能。。。
⚠  TypeError:无法将对象转换为基元值
代理。(/usr/local/lib/node_modules/firebase tools/lib/emulator/functionsemulatoruntime.js:311:83)
反对。(/Users/kishan/Desktop/dilip/googlecloudfunctions/functions/lib/index.js:7:7)
at模块编译(内部/modules/cjs/loader.js:701:30)
at Object.Module._extensions..js(internal/modules/cjs/loader.js:712:10)
at Module.load(内部/modules/cjs/loader.js:600:32)
在tryModuleLoad(内部/modules/cjs/loader.js:539:12)
at Function.Module._load(内部/modules/cjs/loader.js:531:3)
at Module.require(内部/modules/cjs/loader.js:637:17)
根据需要(内部/modules/cjs/helpers.js:22:18)
at/usr/local/lib/node_modules/firebase tools/lib/emulator/functionsemulatoruntime.js:661:33
⚠  我们无法加载您的函数代码。(见上文)
-您的代码似乎是用Typescript编写的,必须在仿真之前编译。

有人能帮我做点什么吗

错误消息向您建议:

您的代码似乎是用Typescript编写的,必须在仿真之前编译


您必须首先使用
npm run build
生成代码。emulator不会为您执行此操作。

我发现它没有调用:

admin.initializeApp(functions.config().firebase)
我不得不打电话:

admin.initializeApp({
    credential: admin.credential.applicationDefault()
});

这解决了问题。

这不是问题所在,我也有同样的问题,我已经编译了typescript。functionsEmulatorRuntime中出现错误-它试图控制台记录一个空对象,这导致了此错误。似乎是由于functions.config().firebase在模拟器中不起作用。functions.config().firebase已被弃用。如果您没有Firebase Admin SDK的特定配置,则只需调用initalizeApp(不带参数),以获取项目的默认值。