在Cloud Functions的Cloud Functions中使用Node.js类

时间:2017-08-07 07:21:09

标签: node.js firebase google-cloud-functions firebase-admin

我是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本地模块,还是只是一些清晰的层次结构的类。

我想问的是,是否有关于这种情况的具体文件(我已经搜索了很多)和/或我是否按照正确的方式构建我的项目。 如果答案是“否”,请给我一些如何构建它的提示。

1 个答案:

答案 0 :(得分:0)

云函数(node.js)目前不支持ES6 import语法,您必须使用require()

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