[英]Firebase serve --only functions VS local emulator to run cloud functions locally?
到目前为止,我一直在进行以下操作以在开发过程中本地使用和测试我的功能:
我将其运行在一个终端中:
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- 链接
2.设置管理员凭据(可选) - 链接
$ set GOOGLE_APPLICATION_CREDENTIALS=path\\to\\key.json $ firebase emulators:start
完成这些步骤后,您的功能测试可以使用Admin SDK访问Firebase和Google API。 例如,在测试身份验证触发器时,仿真函数可以调用admin.auth()。getUserByEmail(email)。
题
两种本地运行函数的方法有什么区别?
firebase emulators:start
是新Firebase模拟器套件的一部分,该套件旨在允许多个模拟产品一起工作。 它与firebase serve --only functions
完全不同,后者仅基于@ google-cloud / functions-emulator npm软件包 ,该软件包未得到积极维护(点击进入,您将发现它已弃用)。 建议您开始迁移到新的仿真器套件,并远离firebase serve
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.