Firebase功能:如何在导出功能之前等待承诺

时间:2019-09-23 08:25:41

标签: typescript firebase google-cloud-functions

我正在尝试将Express应用程序绑定到firebase https函数,并且我需要支持swagger文档,还需要使用swagger进行路由,但是对于路由,我需要等待安装完成后再导出。我没有运气尝试过这个。

async function initApp() {
    const config = {
        appRoot: __dirname
    };

const main = express();

main.use(bodyParser.json());
main.use(bodyParser.urlencoded({ extended: false }));
main.use('/docs', swaggerUi.serve, swaggerUi.setup(swaggerDoc));

await new Promise((resolve, reject) => {
    SwaggerExpress.create(config, (err: any, swaggerExpress: any) => {
        if (err) {
            reject(err);
        }

        swaggerExpress.register(main);
        resolve();
    });
});

return main;
}


export const api = initApp().then(main => functions.https.onRequest(main));

1 个答案:

答案 0 :(得分:-1)

在解决了某些承诺后,无法从模块中导出功能。导出需要在编译时定义。我不知道swagger是如何工作的,但是无论如何,您将需要导出静态定义的函数,并且仅在函数的运行时执行中使用异步承诺。否则,Firebase CLI将不会知道您具有要部署的功能。