由于神秘的语法错误,Firebase函数无法从visual studio部署(请参阅屏幕截图或屏幕录制)



当我部署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的这篇文章有助于发现解决方案。

相关内容