有了Firebase Cloud Functions 2nd Generation,我应该能够使用ES 6风格的导入,如
//index.js
import { initializeApp } from "firebase-admin/app";
import { getFirestore } from "firebase-admin/firestore";
...
字符串
事实上,上述导入确实可以正常工作。
但是,当我尝试从本地.js
文件导入函数时,我在部署时得到一个错误。
项目结构
functions/
index.js
myfuncs.js
型
package.json
(Note file:
前缀,如此处所述)
{
"name": "functions",
"description": "Cloud Functions for Firebase",
"type": "module",
"scripts": {
"lint": "eslint",
"serve": "firebase emulators:start --only functions",
"shell": "firebase functions:shell",
"start": "npm run shell",
"deploy": "firebase deploy --only functions",
"logs": "firebase functions:log"
},
"engines": {
"node": "18"
},
"main": "index.js",
"dependencies": {
"firebase-admin": "^11.8.0",
"firebase-functions": "^4.3.1",
"myfuncs": "file:./"
},
...
}
//index.js
import { initializeApp } from "firebase-admin/app";
import { getFirestore } from "firebase-admin/firestore";
import { myFunc } from "./myfuncs"
的字符串
Firebase CLI
$ firebase deploy --only functions
型
错误:无法成功分析函数代码库。它可能有语法或运行时错误
如果我将myfunc
复制并粘贴到index.js
中,部署将正常运行。换句话说,我不认为我的函数存在语法错误。
我是不是在尝试一些不可能的事情?
2条答案
按热度按时间ne5o7dgx1#
遇到了同样的问题。请尝试在导入模块之前调用
initializeApp()
**,并尝试使用require(...)
而不是import
。例如,在您的案例中:
个字符
这对我很有用,希望这对我有帮助!
o8x7eapl2#
1.重新构建我的项目
字符串
本
型
1.使用
npm init
初始化包(This创建文件
myfuncs/package.json
)1.安装软件包
npm install -S ./myfuncs
(This应该将
"myfuncs": "file:myfuncs"
添加到firebasepackage.json
)1.进口
型
^请注意,这不再是从
"./myfuncs"
的相对导入