javascript - Firebase 函数 : Can not read property https of undefined

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

在终端中的 firebase 部署 期间,我在这一行收到错误:

// 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)

最佳答案

TLDR:我所做的只是改变:

import functions from 'firebase-functions'

致:

import * as functions from 'firebase-functions`

说明:我正在使用

import functions from 'firebase-functions'

从 TS 转译为 JS 后,我的 JS 文件如下所示:

const firebase_functions_1 = __importDefault(require("firebase-functions"));

JS 正在尝试导入从 firebase-functions 导出的 default 模块。问题是,当我查看 node_modules/firebase-functions/lib/v1/index.d.ts (这将来可能会改变)时,它没有任何默认导出,因此我的 JS 代码正在导入未定义:

// node_modules/firebase-functions/lib/v1/index.d.ts
import * as logger from "../logger";
import * as analytics from "./providers/analytics";
import * as auth from "./providers/auth";
import * as database from "./providers/database";
import * as firestore from "./providers/firestore";
import * as https from "./providers/https";
import * as pubsub from "./providers/pubsub";
import * as remoteConfig from "./providers/remoteConfig";
import * as storage from "./providers/storage";
import * as tasks from "./providers/tasks";
import * as testLab from "./providers/testLab";
import { setApp as setEmulatedAdminApp } from "../common/app";
export { analytics, auth, database, firestore, https, pubsub, remoteConfig, storage, tasks, testLab, logger, };
export declare const app: {
    setEmulatedAdminApp: typeof setEmulatedAdminApp;
};
export * from "./cloud-functions";
export * from "./config";
export * from "./function-builder";
export * from "./function-configuration";

我所做的只是改变:

import functions from 'firebase-functions'

致:

import * as functions from 'firebase-functions`

或者只导入https模块:

import { https } from 'firebase-functions'

const helloWorld = https.onCall(...)

一切顺利。我花了一段时间。

关于javascript - Firebase 函数 : Can not read property https of undefined,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59123832/

相关文章:

javascript - 检查单词的第一个字母是否大写,解决方案评估为 false

Javascript - 根据字符拆分字符串但将其保留在结果数组中

javascript - Facebook Messenger 聊天机器人显示 "Check your connection and try again."

node.js - Socket.io,服务器不响应连接事件

javascript - 尝试使用 Node.js 将输入数据存储在 json 文件中

javascript - 监听 Firebase (AngularFire) 中数据的更改

c# - 如何在带有 Firebase 的 Unity 中使用异步

javascript - Bootstrap 2 navbars 1 navbar 动态关闭

javascript - 如何正则表达式网址但排除端口?

java - 遍历 ListView 中的所有 TextView