javascript - 如何在 ES6 语法中导入 firebase-functions 和 firebase-admin 以使用 Babel for Node 10 进行转译
问题描述
我目前正在用 ES6 编写我的云函数,并使用 Babel 进行编译以针对 Node v10 环境。我注意到了一些奇怪的事情。
为什么当我firebase-functions
这样导入时:
import functions from 'firebase-functions';
我收到此错误:
! TypeError: Cannot read property 'https' of undefined
at Object.<anonymous> (C:\myProject\functions\index.js:28:55)
为了修复它,我需要像这样导入它:
import * as functions from 'firebase-functions';
虽然以下import
适用于firebase-admin
:
import admin from 'firebase-admin';
问题
简而言之,问题是:
这是为什么:
import functions from 'firebase-functions'; // DOESN'T WORK
import * as functions from 'firebase-functions'; // WORKS
import admin from 'firebase-admin'; // WORKS
解决方案
之所以import functions from 'firebase-functions';
不起作用是因为'firebase-functions'
没有“函数”默认导出。
因此,此错误:
! TypeError: Cannot read property 'https' of undefined
at Object.<anonymous> (C:\myProject\functions\index.js:28:55)
解决方案:
第一个选项是导入整个模块的内容并添加functions
到包含模块所有导出的当前范围firebase-functions
。
import * as functions from 'firebase-functions'
第二种选择是从模块导入单个导出,在这种情况下,https
因为您正在尝试读取https
.'firebase-functions'
import { https } from 'firebase-functions'
更多信息可以在这里找到。
希望这能澄清你的问题。
推荐阅读
- tensorflow - 如何将 tf 张量转换为 keras 可以适应的某种形式?
- javascript - 正确加入此正则表达式以确认密码
- javascript - 将 javascript 与库捆绑在一起
- php - 我无法请求数组数据
- neo4j - 如何根据 Cypher 中顶点属性的相等性检查创建边?
- amazon-dynamodb - 限制从 AWS GUI 访问 Dynamodb 项目
- c++ - 为什么即使两个向量不同,比较运算符“==”也会返回“YES”?
- python - 根据数组中的唯一值拆分数组
- python - 如何在 for 循环中再次读取输入?
- javascript - 无法使用 jquery 从 textarea 获取文本