首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Flamelink的Firebase多环境

使用Flamelink的Firebase多环境
EN

Stack Overflow用户
提问于 2020-08-14 19:36:16
回答 1查看 153关注 0票数 0

我在Node.js中使用firebase函数,并尝试为其创建多个环境。据我所知,我只需要在Firebase中为它创建单独的项目,我就是这么做的。

我也在使用Flamelink,我也想实现同样的效果。实际上,我为Flamelink制定了一个允许多种环境的Bonfire计划。我担心的是,Flamelink中的不同环境写入到Firebase中的同一数据库中,只用environment标志分隔它,因此每当我想要从数据库中查询某些东西时,我也必须指定我的环境。

有没有办法通过我的设置为不同的Flamelink环境提供不同的数据库,以便我只在配置中指定environment,而不在查询中指定?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-08-17 17:42:20

目前使用Flamelink的每个环境都不可能有一个数据库。实现这一点的唯一方法是将这两个项目都添加到Flamelink。

然而,Flamelink JS SDK可以在云函数中使用,并将减轻在多个环境中工作的一些复杂性。

Flamelink JS SDK在初始化时接受环境参数(以及其他一些参数,如区域设置和数据库类型),将SDK方法的使用与环境联系起来。

代码语言:javascript
复制
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客户端示例

代码语言:javascript
复制
const env = (process.env.FLAMELINK_DATA_ENV || 'staging').toLowerCase()
await fetch(`https://yourhost.cloudfunctions.net/testFunction?env=${env}`)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63412018

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档