我是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的内容(例如:here),但我无法摆脱错误消息
SyntaxError:意外的令牌导入
我曾尝试转换为require语句,但我无法在MyClass
所需的本地模块中使用。
我不在乎它是一个Node.js本地模块,还是只是一些清晰的层次结构的类。
我想问的是,是否有关于这种情况的具体文件(我已经搜索了很多)和/或我是否按照正确的方式构建我的项目。 如果答案是“否”,请给我一些如何构建它的提示。
答案 0 :(得分:0)
云函数(node.js)目前不支持ES6 import
语法,您必须使用require()
。
您链接的文章中的示例使用Babel将ES6转换为ES5。即使您将import
语句转换为require()
,您也会遇到ES5不支持class
语法的事实。如果您想要执行其正在执行的操作,请按照以下步骤将Babel转换为ES5脚本,然后再将其发送到Firebase Cloud。