繁体   English   中英

Firebase function 由于神秘的语法错误而无法从 Visual Studio 部署(请参阅屏幕截图或屏幕录像)

[英]Firebase function fails to deploy from visual studio due to mysterious syntax errors (see screenshot or screen recording)

当我部署我的 firebase function 时,由于似乎是语法问题,部署失败。 请参阅屏幕截图中的终端 window。 错误主要包括“字符串必须是双引号”和“预期缩进 8 个空格但找到 2 个制表符”。 在 VisualStudio IDE 中,我看不到这些错误,所以我试图弄清楚为什么当我尝试将此 function 部署到 Z035489FF8D092741943E4A8324 时会出现这些错误。

我在 Visual Studio 中使用 Typescript 并通过终端中的firebase deploy --only functions命令部署到 Firebase。

端子 Output:

(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"
]

之后我使用以下命令部署了我的 function:

firebase deploy --only functions

我的 function 成功部署到 Firebase 并且我可以在控制台中看到它。

尽管用例不同,但这篇 github 帖子有助于发现解决方案。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM