代码之家  ›  专栏  ›  技术社区  ›  Eliya Cohen

firebase-在nestjs框架内处理云事件

  •  1
  • Eliya Cohen  · 技术社区  · 7 年前

    我在用 NestJS 作为我的后端框架和FireBase。

    要在HTTP请求上将Nest与FireBase集成,只需将Nest的Express实例附加到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);
    

    但是其他的谷歌功能(如pubsub、firestore、auth等)呢?

    我正在构建订阅应用程序,我依赖于 functions.pubsub 每天结束时检查我应该收取哪些订阅费。它需要编写我想用NestJS编写的业务逻辑。

    我正在努力实现这样的目标(简而言之):

    functions.pubsub
        .topic('topic')
        .onPublish(app.getService(Service).method);
    
    1 回复  |  直到 7 年前
        1
  •  0
  •   Eliya Cohen    7 年前

    结果我非常接近解决方案。而不是 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));
      });
    
    推荐文章