目前不可能使用 Flamelink 为每个环境创建一个数据库。实现这一点的唯一方法是将两个项目都添加到 Flamelink。
但是,Flamelink JS SDK可以在云功能中使用,并且可以减轻在多个环境中工作的一些复杂性。
Flamelink JS SDK 在初始化时会接受一个环境参数(以及其他一些参数,如语言环境和数据库类型),将 SDK 方法的使用与环境关联起来。
import * as functions from 'firebase-functions';
import * as admin from 'firebase-admin';
import * as flamelink from 'flamelink/app';
import 'flamelink/content';
admin.initializeApp();
const firebaseApp = admin.app();
const flApp = flamelink({
firebaseApp,
dbType: 'cf',
env: 'staging',
locale: 'en-US',
});
export const testFunction = functions.https.onRequest(async(request, response) => {
if (request.query.env) {
flApp.settings.setEnvironment(request.query.env) // example 'production'
}
try {
const posts = await flApp.content.get({ schemaKey: 'blogPosts' })
res.status(200).json({ posts })
} catch (e) {
// handle error
}
});
根据您连接的前端框架/语言,您可以使用环境变量在环境中传递
JS 客户端示例
const env = (process.env.FLAMELINK_DATA_ENV || 'staging').toLowerCase()
await fetch(`https://yourhost.cloudfunctions.net/testFunction?env=${env}`)