我在firebase中有一个项目,并且使用Google Cloud托管了API。 我想了解如何托管云功能的多个实例,例如一个带有测试url的实例,另一个带有live实例,而另一个实例可能是dev
我试图通过创建站点进行部署,但似乎它会覆盖并保留最后一个。
我要避免创建多个项目,因为这将需要维护多个数据库。
答案 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"