Спасибо Дагу Стивенсону за его ответ и помощь.Хотя я хотел дать свой собственный ответ.
Так что ответ на мой вопрос, вообще говоря: нет, вы не можете.
Как указывал Даг, это не проблема дляпотребности масштабирования многих людей.Firebase создаст до 1000 экземпляров вашей функции для масштабирования.
Я хотел бы дать немного другой ответ, чем Дуг, на то, как я написал бы приложение Express и имел бы различные функции Firebase Cloud для проекта:
const payment = express()
const order = express()
payment.get('/route', ...)
order.get('/route', ...)
export const payment = functions.https.onRequest(payment)
export const order = functions.https.onRequest(order)
Преимущество здесь в том, что я могу начать выражать маршруты REST или RPC, например:
- / payment / someaction (RPC)
- / order (get, put, почта и т. д.)
Другое преимущество заключается в том, что я могу предоставить «тестовый» API и «живой» API для таких вещей, как платежи / обработка по кредитной карте:
// [START Express LIVE App]
// [START get user]
app.get('/user', async (req, res) => {
await handleGetUser(req, res, paymentServiceLive);
});
// [END get user]
// [START claim]
app.post('/claim', async (req, res) => {
await handleClaim(req, res, claimEmailTo);
});
// [END claim]
// [START user]
app.post('/user', async (req, res) => {
await handleUserPost(req, res, paymentServiceLive);
});
// [END user]
// [START ephemeralKey]
app.post('/ephemeralKey', async (req, res) => {
await handleEphemeralKey(req, res, paymentServiceLive);
});
// [END ephemeralKey]
// [START charge]
app.post('/charge', async (req, res) => {
await handleCharge(req, res, paymentServiceLive);
});
// [END charge]
// [START purchase]
app.post('/purchase', async (req, res) => {
await handlePurchase(req, res, paymentServiceLive);
});
// [END purchase]
//Expose Express API as a single Cloud Function:
exports.app = functions.https.onRequest(app);
// [END Express LIVE App]
// [START Express TEST App]
// [START get user]
appTest.get('/user', async (req, res) => {
console.log('appTest /user get', req);
await handleGetUser(req, res, paymentServiceTest);
});
// [END get user]
// [START claim]
appTest.post('/claim', async (req, res) => {
await handleClaim(req, res, claimEmailToTest, true);
});
// [END claim]
// [START user]
appTest.post('/user', async (req, res) => {
console.log('appTest /user post', req);
await handleUserPost(req, res, paymentServiceTest);
});
// [END user]
// [START ephemeralKey]
appTest.post('/ephemeralKey', async (req, res) => {
await handleEphemeralKey(req, res, paymentServiceTest)
});
// [END ephemeralKey]
// [START charge]
appTest.post('/charge', async (req, res) => {
await handleCharge(req, res, stripeTest);
});
// [END charge]
// [START purchase]
appTest.post('/purchase', async (req, res) => {
await handlePurchase(req, res, paymentServiceTest);
});
// [END purchase]
//Expose Express API as a single Cloud Function:np
exports.apptest = functions.https.onRequest(appTest);
// [END Express TEST App]
Это позволяет мне иметь среду разработки и живую среду.в файлах конфигурации моего приложения у меня просто другой URL-адрес API:
/us-central1/apptest
или
/us-central1/app