【问题标题】:google cloud function error when defining simple function定义简单函数时谷歌云函数错误
【发布时间】:2019-06-28 02:32:44
【问题描述】:

您好,我正在尝试使用 Firebase 托管部署一个简单的功能,但当我这样做时,我的 Firebase 日志中出现以下错误:

TypeError: Cannot set property 'content-type' of undefined
    at ServerResponse.OutgoingMessage.setHeader (_http_outgoing.js:365:22)
    at ServerResponse.header (/user_code/node_modules/express/lib/response.js:767:10)
    at ServerResponse.contentType (/user_code/node_modules/express/lib/response.js:595:15)
    at ServerResponse.send (/user_code/node_modules/express/lib/response.js:145:14)
    at app.get (/user_code/lib/index.js:10:22)
    at Layer.handle [as handle_request] (/user_code/node_modules/express/lib/router/layer.js:95:5)
    at next (/user_code/node_modules/express/lib/router/route.js:137:13)
    at Route.dispatch (/user_code/node_modules/express/lib/router/route.js:112:3)
    at Layer.handle [as handle_request] (/user_code/node_modules/express/lib/router/layer.js:95:5)
    at /user_code/node_modules/express/lib/router/index.js:281:22

鉴于我刚开始使用 firebase 托管,我不知道是什么原因造成的;这是我的文件:

src > index.ts:

import * as functions from 'firebase-functions';
import * as express from 'express';

// // Start writing Firebase Functions
// // https://firebase.google.com/docs/functions/typescript
//

const app = express();

export const getTime = functions.https.onRequest((request, response) => {
 response.send("Hello from Firebase!");
});

firebase.json:

{
  "hosting": {
    "public": "public",
    "ignore": [
      "firebase.json",
      "**/.*",
      "**/node_modules/**"
    ],
    "rewrites":[{
      "source": "/timestamp",
      "function": "getTime"
    }]
  },
  "functions": {
    "predeploy": [
      "npm --prefix \"$RESOURCE_DIR\" run lint",
      "npm --prefix \"$RESOURCE_DIR\" run build"
    ]
  }
}

package.json:

{
  "name": "functions",
  "scripts": {
    "lint": "tslint --project tsconfig.json",
    "build": "tsc",
    "serve": "npm run build && firebase serve --only functions",
    "shell": "npm run build && firebase functions:shell",
    "start": "npm run shell",
    "deploy": "firebase deploy --only functions",
    "logs": "firebase functions:log"
  },
  "main": "lib/index.js",
  "dependencies": {
    "express": "^4.16.4",
    "firebase-admin": "~6.0.0",
    "firebase-functions": "^2.1.0"
  },
  "devDependencies": {
    "tslint": "^5.12.0",
    "typescript": "^3.2.2"
  },
  "private": true
}

【问题讨论】:

    标签: firebase google-cloud-functions firebase-hosting


    【解决方案1】:

    如您所见here,您的 index.ts 应该是:

    import * as functions from 'firebase-functions';
    import * as express from 'express';
    
    // // Start writing Firebase Functions
    // // https://firebase.google.com/docs/functions/typescript
    //
    
    const app = express();
    
    app.get("*", (request, response) => {
        response.send("Hello from Firebase!");
    });
    
    export const getTime = functions.https.onRequest(app);
    

    【讨论】:

      猜你喜欢
      • 2017-12-23
      • 2020-05-01
      • 2020-03-18
      • 2019-02-15
      • 2018-12-07
      • 2018-10-02
      • 2021-01-22
      • 2019-06-12
      • 2021-01-13
      相关资源
      最近更新 更多