如何分离 Firebase 数据库中的测试和生产数据?

Posted

技术标签:

【中文标题】如何分离 Firebase 数据库中的测试和生产数据?【英文标题】:How can I separate testing and production data in my Firebase Database? 【发布时间】:2016-10-27 12:40:18 【问题描述】:

每个 Firebase 项目仅包含一个用于数据的 JSON 树。最佳实践要求测试应该在与生产数据不同的数据库上运行。实现这一目标的最简单方法是什么?

我考虑的一些事情:

在同一个项目中使用多个子树进行测试和生产 - 这看起来很混乱,而且测试和生产数据很难分开。 设置多个 Firebase 项目以进行测试和生产 - 这似乎是来自 this question 与 android 相关的最佳答案。但我不确定如何在 Xcode 中设置多个 GoogleService-Info.plist 文件并根据我的应用配置在它们之间切换。

【问题讨论】:

【参考方案1】:

创建多个 Firebase 项目。每个项目都有自己的 plist 文件。

FIRApp 有一个自定义配置选项。下载您的测试/调试项目的 plist,重命名并加载如下。

#if DEBUG
    NSString *filePath = [[NSBundle mainBundle] pathForResource:@"GoogleService-Info-dev" ofType:@"plist"];
    FIROptions *options = [[FIROptions alloc] initWithContentsOfFile:filePath];
    [FIRApp configureWithOptions:options];
#else
    [FIRApp configure];
#endif

更详细的解释可以看here

【讨论】:

差不多一年后,我想确认,对于现在使用 Firebase 的每个新项目,我都会创建两个单独的 Firebase 项目:一个用于测试/开发,一个用于生产。 在文档中也推荐:firebase.google.com/docs/cli/#managing_project_aliases 除此之外,我还将在 FireBase 中创建一个单独的项目,以便不共享数据。 @pejalo 如果你把这个作为答案在这里我会支持它。我认为,由于制作两个单独的 firebase 项目是对您提出的问题的一个很好的回答(尽管上面的问题没有错),因此应该发布并使其更加明显。阅读本文后,我将自己创建两个独立的项目 @KyleSomers 我编辑了这个答案以明确说明我认为已经暗示的内容

以上是关于如何分离 Firebase 数据库中的测试和生产数据?的主要内容,如果未能解决你的问题,请参考以下文章

如何计算 Firebase 原始数据中的会话长度和会话数?

django-生产和测试环境分离

Facebook:如何分离调试和生产模式事件?

iOS 上的 Firebase Analytics 事件 - 测试和生产

网易cetus读写分离--压力测试

数仓如何优化