到目前为止,我一直在进行以下操作以在开发过程中本地使用和测试我的功能:
我将其保留在一个终端中
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)。
问题
两种在本地运行函数的方法有什么区别?
答案 0 :(得分:2)
firebase emulators:start
是新Firebase模拟器套件的一部分,该套件旨在允许多个模拟产品一起工作。它与基于@google-cloud/functions-emulator npm package的firebase serve --only functions
完全不同,{{3}}并未得到积极维护(单击进入,您将看到它已被弃用)。建议您开始迁移到新的仿真器套件,而远离firebase serve
。