在 Cloud Functions for Firebase 中使用 Node.js 类



我是Node.js和Firebase的新手。 我已经成功地尝试部署一些云函数来测试它们。 我有一个 Node.js 项目,其中我有一个定义为:

import * as Api from './api';
export default class MyClass {
constructor(props) {[...]}
someFunction(props) {
return Api.someOtherFunction(props.arg1).then([..]).catch([..]);
}
}

在 API 代码中,我使用 firebase 管理员 SDK,并使用实时数据库。

ref.child(`users/${userId}`).set({
id: userId,
arg1: arg1,
arg2: arg2
});

现在,问题是我想在云函数中使用MyClass。 我也在云函数中阅读了很多关于 ES6 的信息(例如:这里(,但我无法摆脱错误消息

语法错误:意外的令牌导入

我尝试转换为 require 语句,但我无法在MyClass所在的位置要求我的本地模块。 我不在乎它是一个 Node.js 本地模块,还是只是一些具有清晰层次结构的类。

我想问的是,是否有关于这种情况的特定文档(我已经搜索了很多(和/或我是否遵循正确的方法来构建我的项目。 如果答案是"否",请给我一些关于如何构建它的提示。

Cloud Functions (node.js( 目前不支持 ES6import语法,必须使用require()

您链接的文章中的示例是使用 Babel 将 ES6 转换为 ES5。即使您将import语句转换为require(),您也会遇到 ES5 不支持class语法的事实。如果您想执行本文的操作,请按照步骤让 Babel 将您的 ES6 脚本转换为 ES5,然后再将其发送到 Firebase Cloud。

最新更新