Сохранение изображения в gcloud с помощью облачной функции Firebase

У меня была та же проблема: служба mysql запускалась, но не служба apache, основная проблема в том, что один из ваших виртуальных хостов не является конфигом. правильно, все, что я сделал, было удалено виртуальным хостом, который я создал «D: \ wamp \ bin \ apache \ apache2.4.23 \ conf \ extra \ httpd-vhosts, перезапустил все службы. Служба apache начала работать правильно, и поэтому я просто отправился на localhost и добавил виртуальный хост автоматически, и поэтому он работал!

0
задан Coach 5 March 2019 в 15:09
поделиться

1 ответ

Вы должны использовать обещания для обработки асинхронных задач (например, HTTP-вызов unsplash или запись в облачное хранилище). По умолчанию request не возвращает обещания, поэтому вам нужно использовать интерфейсную оболочку для запроса, например request-promise .

Поэтому вы должны изменить свой код следующим образом:

const rp = require('request-promise');
.....

export const getUnsplashCron = functions
  .region('europe-west1')
  .runWith({ memory: '512MB', timeoutSeconds: 15 })
  .https.onRequest(async(req, res) => {

  .......

  const options = {
    uri: req.query.url + '?client_id=' + environment.unsplash.appId
  };

  rp(options)
    .then(response => {
      .... //Upload your file
      res.send('Success');
    })
    .catch(err => {
      // API call failed...
      res.status(500).send('Error': err);
    });
};

Вы можете посмотреть эту официальную серию видео для более подробной информации: https://firebase.google.com/docs/functions/video -series / (в частности, 3 видео под названием «Изучите обещания JavaScript»).

0
ответ дан Renaud Tarnec 5 March 2019 в 15:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: