Firebase - обрабатывать облачные события в NestJS Framework - PullRequest
0 голосов
/ 14 ноября 2018

Я использую NestJS в качестве моего внутреннего фреймворка и Firebase.

Интегрировать Nest с Firebase по HTTP-запросам просто, как прикрепить экспресс-экземпляр nest к Firebase:

const server: Express = express();

const bootstrap = async (expressInstance: Express) => {
  const app = await NestFactory.create(AppModule, expressInstance);
  await app.listen(3000);
  await app.init();
};

bootstrap(server);

exports.api = functions.https.onRequest(server);

А как насчет других функций Google (таких как pubsub, firestore, auth и т. Д.)?

Я создаю приложение для подписки, и в зависимости от functions.pubsub я проверяю в конце каждого дня, какие подписки мне следует взимать. Это требует написания бизнес-логики, которую я хочу написать с помощью NestJ.

Я пытаюсь добиться чего-то подобного (в двух словах):

functions.pubsub
    .topic('topic')
    .onPublish(app.getService(Service).method);

1 Ответ

0 голосов
/ 19 ноября 2018

Оказывается, я был очень близок к решению.вместо getService мне пришлось использовать get, вот так:

const bootstrap = async (expressInstance: Express) => {
  const app = await NestFactory.create(AppModule, expressInstance);
  await app.init();

  return app;
};

const main = bootstrap(server);

export const subscriptions = functions
  .pubsub
  .topic('cron-topic')
  .onPublish((context, message) => main.then(app => {
    return app.get(SubscribeService).initDailyCharges(context, message));
  });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...