До сих пор я делал следующее, чтобы использовать и тестировать свои функции локально во время разработки:
Я оставляю это работающим в одном терминале:
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
Локальный запуск функций В CLI Firebase входитЭмулятор Cloud Functions, который может эмулировать следующие типы функций:
- HTTPS-функции
- Вызываемые функции
- Облачные функции Firestore
Вы можетезапускать функции локально, чтобы проверить их перед развертыванием в рабочей среде.
1.Установите Firebase CLI - Link
2.Установите учетные данные администратора (необязательно) - Ссылка
$ set GOOGLE_APPLICATION_CREDENTIALS=path\to\key.json
$ firebase emulators:start
После выполнения этих шагов ваши функциональные тесты могут получить доступ к Firebase и API Google с помощью Admin SDK.Например, при тестировании триггера аутентификации эмулируемая функция может вызывать admin.auth (). GetUserByEmail (email).
ВОПРОС
Что такоеРазница между двумя методами локального запуска функций?