Firebase не развертывает облачную функцию

# #typescript #google-cloud-functions #firebase-cli

Вопрос:

Я впервые использую firebase и пытаюсь развернуть облачную функцию, следуя логу с учебником и изменяя код по мере необходимости. Я попытался развернуть функцию с помощью быстрого запуска firebase, и все прошло хорошо. Однако, когда я пытаюсь развернуть свою функцию, я получаю ошибку:

ошибка:

{«@тип»:»type.googleapis.com/google.cloud.audit.Журнал аудита»,»статус»:{«код»:3,»сообщение»:»Сбой функции при загрузке пользовательского кода. Вероятно, это связано с ошибкой в пользовательском коде. Сообщение об ошибке: Ошибка: пожалуйста, изучите журналы своих функций, чтобы узнать причину ошибки:

Код, который я пытаюсь развернуть (без импорта):

ИНДЕКС.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}amp;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"
  },
 

Комментарии:

1. Не могли бы вы проверить журналы для этой функции firebase functions:log --only <FUNCTION_NAME> и предоставить нам эту информацию?