Firebase服务-仅功能VS本地仿真器以在本地运行云功能吗?

时间:2019-06-16 12:12:43

标签: javascript node.js firebase google-cloud-functions firebase-cli

到目前为止,我一直在进行以下操作以在开发过程中本地使用和测试我的功能:

我将其保留在一个终端中

firebase serve --only functions

并且在初始化Firebase应用时,将其添加到客户端代码中:

const config = {
  apiKey: process.env.FIREBASE_APP_API_KEY,
  authDomain: process.env.FIREBASE_APP_AUTH_DOMAIN,
  databaseURL: process.env.FIREBASE_APP_DATABASE_URL,
  projectId: process.env.FIREBASE_APP_PROJECT_ID,
  storageBucket: process.env.FIREBASE_APP_STORAGE_BUCKET,
  messagingSenderId: process.env.FIREBASE_APP_MESSAGING_SENDER_ID
};

firebase.initializeApp(config);

// THIS IS THE DEFAULT HOST AND PORT USED BY 'firebase serve command'
firebase.functions().useFunctionsEmulator('http://localhost:5000');

我只测试了HTTP可调用函数,到目前为止,它一直运行良好。


但是在文档中,我看到了:

https://firebase.google.com/docs/functions/local-emulator

  

在本地运行功能   Firebase CLI包括一个Cloud Functions仿真器,可以仿真以下功能类型:

     
      
  • HTTPS函数
  •   
  • 可调用函数
  •   
  • Cloud Firestore功能
  •   
     

在部署到生产环境之前,您可以在本地运行功能以对其进行测试。

     

1。安装Firebase CLI -Link

     

2。设置管理员凭据(可选)-Link

$ set GOOGLE_APPLICATION_CREDENTIALS=path\to\key.json
$ firebase emulators:start
     

完成这些步骤后,您的功能测试可以使用Admin SDK访问Firebase和Google API。例如,在测试身份验证触发器时,仿真函数可以调用admin.auth()。getUserByEmail(email)。

问题

两种在本地运行函数的方法有什么区别?

1 个答案:

答案 0 :(得分:2)

firebase emulators:start是新Firebase模拟器套件的一部分,该套件旨在允许多个模拟产品一起工作。它与基于@google-cloud/functions-emulator npm packagefirebase serve --only functions完全不同,{{3}}并未得到积极维护(单击进入,您将看到它已被弃用)。建议您开始迁移到新的仿真器套件,而远离firebase serve