在Firebase中的单个项目中托管多个环境

时间:2019-08-23 05:40:20

标签: firebase google-cloud-functions

我在firebase中有一个项目,并且使用Google Cloud托管了API。 我想了解如何托管云功能的多个实例,例如一个带有测试url的实例,另一个带有live实例,而另一个实例可能是dev

我试图通过创建站点进行部署,但似乎它会覆盖并保留最后一个。

我要避免创建多个项目,因为这将需要维护多个数据库。

2 个答案:

答案 0 :(得分:0)

您可以使用express完成此操作。查看此gitrepo https://github.com/JoeBeer/tandemPartner/tree/master/functions

上的index.js文件

您可以在其中看到如何实现此类端点。

编辑: 假设您要使用SELECT b.* FROM table_B b INNER JOIN table_A a ON a.column_1 = b.col1 and a.column_2 = b.col2 https://yourwebsite.cloudfunctions.net/users调用端点。

如下所示:

index.js

https://yourwebsite.cloudfunctions.net/chatrooms

然后,您必须提供usersEndpoint.js和chatroomsEndpoint.js。

usersEndpoint.js

'use strict';
const admin = require('firebase-admin');
const functions = require('firebase-functions');
admin.initializeApp(functions.config().firebase);

const cors = require('cors')({ origin: true });
const express = require('express');

const users = express();
users.use(cors);
let usersEndpoint = require('./usersEndpoint');

const chatrooms = express();
chatrooms.use(cors);
let chatroomsEndpoint = require('./chatroomsEndpoint')

users.post('/', usersEndpoint.createUser); // Create new user
users.put('/:userId', usersEndpoint.updateUser); // Update user
users.delete('/:userId', usersEndpoint.deleteUser); // Delete user
exports.users = functions.https.onRequest(users); // Enables function 'users' @ Cloud Functions

chatrooms.post('/', chatroomsEndpoint.createChatroom); // Create new chatroom
chatrooms.put('/:chatroomId', chatroomsEndpoint.updateChatroom) // Update chatroom
chatrooms.delete('/:chatroomId', chatroomsEndpoint.deleteChatroom) // Delete chatroom
exports.chatrooms = functions.https.onRequest(chatrooms); // Enables function 'chatrooms' @ Cloud Functions

答案 1 :(得分:0)

这个问题在这篇文章[1]中得到了回答。

最佳做法:“对每个环境使用专用项目与所有Firebase产品的推荐做法相同。”

[1] Firebase Functions version of "Deploy to multiple environments"