0

我是第一次使用 firebase,并尝试通过遵循教程并根据需要修改代码来部署云功能。我尝试使用 firebase 快速入门部署一个功能,并且运行良好。但是,当我尝试部署我的功能时,我得到了错误:

错误:

{"@type":"type.googleapis.com/google.cloud.audit.AuditLog","status":{"code":3,"message":"函数加载用户代码失败。这可能是由于用户代码中的错误。错误消息:错误:请检查您的函数日志以查看错误原因:

我正在尝试部署的代码(没有导入):

索引.TS:

admin.initializeApp({
  credential: admin.credential.applicationDefault()
});

dotenv.config();

const app = express();

const BASE_URL = `http://api.aviationstack.com/v1/flights?access_key=${process.env.ACCESS_KEY}&flight_iata=`

app.get("/:flightiata", async (req, res) => {
  const input = req.params.flightiata;

  if (typeof (input) === 'undefined') {
    res.status(400).send(getError(Errors.MISSING_PARAMETER));
  }

  const isValid: Joi.ValidationResult = userInputValidator.validate(input);

  if (isValid.error) {
    res.status(400).send(getError(Errors.INVALID_INPUT, isValid.error.message));
  }

  try {
    const apiResponse = await axios.get(`${BASE_URL}${input}`);

    const response: FlightData = {
      flightIata: apiResponse.data.data[0].flight.iata,
      flightDate: apiResponse.data.data[0].flight_date,
      flightStatus: apiResponse.data.data[0].flight_status,
      departureAirport: apiResponse.data.data[0].departure.airport,
      departureIata: apiResponse.data.data[0].departure.iata,
      arrivalAirport: apiResponse.data.data[0].arrival.airport,
      arrivalIata: apiResponse.data.data[0].arrival.iata,
      departureGate: apiResponse.data.data[0].departure.gate,
      departureScheduleTime: apiResponse.data.data[0].departure.scheduled
    }

    res.status(200).send(response)
  } catch (error) {
    res.status(500).send(getError(Errors.INTERNAL_SERVER_ERROR, error as string));
  }
});

export const flightAPI = functions.https.onRequest(app);

当我在本地运行它时,它运行良好,这是 API 的示例输出

示例输出:

{
"flightIata": "AD2933",
"flightDate": "2021-10-04",
"flightStatus": "landed",
"departureAirport": "Afonso Pena International Airport",
"departureIata": "CWB",
"arrivalAirport": "Salgado Filho",
"arrivalIata": "POA",
"departureGate": "12",
"departureScheduleTime": "2021-10-04T17:25:00+00:00"
}

如果很重要有我的package.json

包.JSON:

  "dependencies": {
    "axios": "^0.21.4",
    "dotenv": "^10.0.0",
    "firebase-admin": "^9.8.0",
    "firebase-functions": "^3.15.7"
  },
  "devDependencies": {
    "@typescript-eslint/eslint-plugin": "^4.29.2",
    "@typescript-eslint/parser": "^4.29.2",
    "eslint": "^7.32.0",
    "eslint-config-airbnb-base": "^14.2.1",
    "eslint-plugin-import": "^2.24.1",
    "firebase-functions-test": "^0.2.0",
    "joi": "^17.4.2",
    "typescript": "^3.8.0"
  },
4

0 回答 0