【问题标题】:Firebase functions: Can not read property https of undefinedFirebase 函数:无法读取未定义的属性 https
【发布时间】:2020-03-26 04:12:31
【问题描述】:

在终端中的firebase deploy 期间,我在此行收到错误:

// index.js in the output folder
const firebase_functions_1 = __importDefault(require("firebase-functions"));

exports.buyUsedServer = firebase_functions_1.default.https.onRequest(express);

// index.ts in the source folder
import firebaseFunctions from 'firebase-functions';

export const buyUsedServer = firebaseFunctions.https.onRequest(express);
//# sourceMappingURL=index.js.map

什么是 firebaseFunctions(或默认对象)导致这里出现问题?

这是完整的堆栈跟踪:

i  functions: preparing functions directory for uploading...

Error: Error occurred while parsing your function triggers.

TypeError: Cannot read property 'https' of undefined
    at Object.<anonymous> (/home/owner/PhpstormProjects/shopify/project/functions/outDir/index.js:170:54)
    at Module._compile (internal/modules/cjs/loader.js:774:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:785:10)
    at Module.load (internal/modules/cjs/loader.js:641:32)
    at Function.Module._load (internal/modules/cjs/loader.js:556:12)
    at Module.require (internal/modules/cjs/loader.js:681:19)
    at require (internal/modules/cjs/helpers.js:16:16)
    at /home/owner/.nvm/versions/node/v12.4.0/lib/node_modules/firebase-tools/lib/triggerParser.js:15:15
    at Object.<anonymous> (/home/owner/.nvm/versions/node/v12.4.0/lib/node_modules/firebase-tools/lib/triggerParser.js:53:3)
    at Module._compile (internal/modules/cjs/loader.js:774:30)

【问题讨论】:

    标签: javascript node.js firebase google-cloud-platform google-cloud-functions


    【解决方案1】:

    您应该执行以下操作:

    首先导入模块firebase-functions

    // The Cloud Functions for Firebase SDK to create Cloud Functions and setup triggers.
    const functions = require('firebase-functions');
    

    那你可以拨打onRequest():

    exports.date = functions.https.onRequest((req, res) => {
      // ...
    });
    

    您可以查看文档here.

    【讨论】:

    • 使用 requireexports. 语法有效,但我不确定为什么即使在编译后导入/导出也会失败。谢谢
    【解决方案2】:

    和你一样,我想使用这个 ES6 导入而不是 CommonJS (require())。您可以通过使用解决此问题

    import { https } from 'firebase-functions';
    

    我从here 那里得到了答案,其中包含更多信息。

    【讨论】:

      猜你喜欢
      • 2018-12-09
      • 2018-10-30
      • 2018-04-01
      • 2018-09-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多