我是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。