当我部署firebase函数时,由于语法问题,部署失败。请参阅屏幕截图中的终端窗口。错误主要包括"字符串必须是双引号"one_answers"预期缩进8个空格,但找到2个制表符"。在VisualStudioIDE中,我没有看到这些内联错误,所以我试图弄清楚当我试图将此函数部署到Firebase时为什么会出现这些错误。
我在Visual Studio中使用Typescript,并通过终端中的firebase deploy --only functions
命令部署到Firebase。
终端输出:
(base) samyoon@Sams-MBP FitnessApp % firebase deploy --only functions
=== Deploying to 'fitnessapp-b3eea'...
i deploying functions
Running command: npm --prefix "$RESOURCE_DIR" run lint
lint
eslint --ext .js,.ts .
/Users/samyoon/Documents/FitnessApp/functions/src/index.ts
1:19 error Require statement not part of import statement @typescript-eslint/no-var-requires
1:27 error Strings must use doublequote quotes
2:15 error Require statement not part of import statement @typescript-eslint/no-var-requires
2:23 error Strings must use doublequote quotes
4:16 error Strings must use doublequote quotes
7:15 error Strings must use doublequote quotes
8:22 warning 'context' is defined but never used @typescript-eslint/no-unused-vars
14:1 error Unexpected tab character no-tabs
14:1 error Mixed spaces and tabs no-mixed-spaces-and-tabs
17:1 error Unexpected tab character no-tabs
17:1 error Mixed spaces and tabs no-mixed-spaces-and-tabs
18:1 error Unexpected tab character no-tabs
18:1 error Expected indentation of 8 spaces but found 2 tabs indent
19:1 error Unexpected tab character no-tabs
19:1 error Expected indentation of 8 spaces but found 2 tabs indent
19:9 error Strings must use doublequote quotes
20:1 error Unexpected tab character no-tabs
20:1 error Expected indentation of 8 spaces but found 2 tabs indent
20:9 error Strings must use doublequote quotes
21:1 error Unexpected tab character no-tabs
21:1 error Expected indentation of 6 spaces but found 1 tab indent
21:4 error Missing semicolon semi
✖ 22 problems (21 errors, 1 warning)
11 errors and 0 warnings potentially fixable with the `--fix` option.
Error: functions predeploy error: Command terminated with non-zero exit code 1
代码:
const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp();
import {} from 'firebase-admin';
exports.createUser = functions.firestore
.document('users/{userId}')
.onCreate((snap, context) => {
// Get an object representing the document
// e.g. {'name': 'Marie', 'age': 66}
const userData = snap.data();
// access a particular field as you would any JS property
const userUID = userData.uid;
// perform desired operations ... create new WorkoutCycle document
admin.collection("WorkoutCycles").doc().set({
createdTimestamp: Date.now(),
name: 'FunctionCreatedMe',
user: 'users/'+userUID,
})
});
以下是该问题的屏幕记录:https://www.loom.com/share/881de3fe7e2f45ccb4f99155b69c5bea
以下是该问题的屏幕截图:Visual Studio IDE和终端的屏幕截图
我能够解决这个问题。我转到我的firebase.json文件,它看起来像这样:
{
"functions": {
"predeploy": [
"npm --prefix "$RESOURCE_DIR" run lint",
"npm --prefix "$RESOURCE_DIR" run build"
]
}
}
并删除了这个部分:
"predeploy": [
"npm --prefix "$RESOURCE_DIR" run lint",
"npm --prefix "$RESOURCE_DIR" run build"
]
之后,我使用以下命令部署了我的功能:
firebase deploy --only functions
我的功能成功地部署到了Firebase,我可以在控制台中看到它。
尽管用例有所不同,但github的这篇文章有助于发现解决方案。