我可以同时在本地模拟云功能和托管吗?

时间:2019-03-29 11:07:58

标签: javascript firebase google-cloud-functions firebase-hosting

我正在编写一个具有Firebase托管和云功能的简单Web应用程序。我的功能是onCreate,onDelete和httpsServer。我不想通过在本地运行它来测试我的应用程序。由于string仅适用于https函数和托管,因此该怎么办。

我尝试在不同的bash终端上同时运行firebase servefirebase serve。这会导致firebase functions:shell失败。

创建功能

firebase functions:shell

删除功能

exports.created = functions.firestore.document('Books/{bookID}')
    .onCreate((snapshot, context) => {

          FUNCTION_BODY
     });

https函数

exports.deleted = functions.firestore.document('Books/{bookID}')
    .onDelete((snapshot, context) => {

         FUNCTION_BODY
    });

bash抛出的错误

exports.app = functions.https.onRequest(app);

第二次打击的输出

$ firebase functions:shell
i  functions: Preparing to emulate functions.
Warning: You're using Node.js v10.13.0 but Google Cloud Functions only supports v6.11.5.
!  functions: Failed to emulate created
!  functions: Failed to emulate deleted
!  functions: Failed to emulate app
i  functions: No functions to emulate.
No functions emulated.

注意这些是在同一台计算机上同时运行的独立bash终端。

1 个答案:

答案 0 :(得分:0)

我在firebase文档中进行了一些挖掘,但找不到任何解决方案。这可能是因为没有官方工具可让您执行此操作。因此,我最终通过使用nodemon运行托管,然后使用

解决了该问题。
  

firebase服务-功能

这解决了使用相同端口的问题,因为它是由nodemon处理的。

希望firebase将来会提供新工具。