【问题标题】:Using a Node.js class in Cloud Functions for Firebase在 Cloud Functions for Firebase 中使用 Node.js 类
【发布时间】:2018-01-14 10:23:20
【问题描述】:

我是 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 admin SDK 并使用实时数据库。例如:

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

现在,问题是我想在云功能中使用MyClass。 我也在 Cloud Functions 中阅读了很多关于 ES6 的内容(例如:here),但我无法摆脱错误消息

SyntaxError: 意外的令牌导入

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

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

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-08-02
      • 2018-02-16
      • 2017-09-07
      • 2018-01-03
      • 2022-12-01
      • 2017-08-07
      • 2017-10-17
      • 2017-09-27
      相关资源
      最近更新 更多