在Firebase中存储非用户数据的正确方法是什么?

在Firebase中存储非用户数据的正确方法是什么?

问题描述:

我有一个Firebase应用程序,可以存储用户数据并提供静态数据。我正在努力想出一个安全的方式来存储这些静态数据。在Firebase中存储非用户数据的正确方法是什么?

静态数据是视频的URL等信息,用户将需要一个学习课程(预设数据)的列表。这些可以定期更改。

我的问题是任何开发人员可以意外的删除整个数据存储与按钮的点击。

这就是我想要的,但我不知道如何来完成:

  1. 我在静态数据直接写到火力
  2. 还有就是数据的实时(应用程序)的版本,一个发展(应用程序)的版本,以及分期(应用程序)版本 - 活应该是不可编辑
  3. 当分期已经得到很好的测试,我想所有这些数据迁移到现场火力地堡应用程序的静态数据

我知道如何在Firebase之外完成此任务,但我真的很想在Firebase上构建我的整个后端。有什么想法吗?

价格可以改变。订购可以改变,新课程可以添加等。

的数据看起来是这样的:

{ 
"slopes": { 
"slopeiOS": { 
    "featuredCourse": "k43l2l2-beginner-ios", 
    "courses": { 
    "k43l2l2-beginner-ios": { 
     "name": "Beginner iOS 1", 
     "order": 12, 
     "price": 250, 
     "salePrice": 150, 
     "onSale": true, 
     "purchases": 12000, 
     "totalMinutes": 102282, 
     "videos": { 
     "k23j3l": { 
      "order": 22, 
      "duration": 150, 
      "title": "How to install Xcode", 
      "description": "Learn how to install Xcode.." 
     } 
     } 
    } 
    } 
} 
} 
} 
+1

你可以给我们存储在数据库中的实际json吗?如果我们不知道存储的名称,很难编写规则。这似乎可以通过设置一个不允许写入具有某个属性的视频的规则来实现。迁移可能是您只允许登录管理员执行的操作。 –

+0

我更新了样本数据。我最终的担心是一个小小的错误改变可能会影响到数千用户,所以我想对所有数据管理格外谨慎 – firedev

+0

谢谢!再读几次后,我想我可能不需要它,对不起。我希望我的回答有帮助。大型数据集很难(不管是不是Firebase),但是如果你有一个相对较小的集合,手动执行此操作可能是一个很好的入门选择。祝你好运! –

根据我对你想要做什么的理解,好像你的最大的问题是开发商不小心删除的应用程序的生产版本的数据。

我不能完全肯定你喜欢什么类型的解决方案,所以这里有几个选项:

  1. 这可能是欣慰的是火力做每日备份(Is it possible to backup Firebase DB?),因此,如果您最大的担忧是丢失数据,这解决了很多问题。您还可以通过API调用备份自己的数据:https://www.firebase.com/docs/rest/api/

  2. 我可以看到,这样做的最简单但最手动的方式是导出您的Firebase开发数据,然后将其上传到您的演示版和实时版本应用程序使用导入和导出按钮: Firebase import and export buttons

  3. 如果您正在寻找更自动一点的东西。你必须为自己编写一些代码或者一个“管理”门户。该门户可以在登录后为您提供对两个Firebase数据库的访问权限。您可以创建一个工具来比较三个数据库之间的JSON差异(可能对类的唯一ID进行较浅的搜索),并且可以将数据推送到应用的临时版本和实时版本。这可能是更“可扩展”的路线,但所有这些在处理大型数据集时都会遇到问题。

+0

这是很好的信息。我现在几乎想知道如果将我的静态数据放入我自己的REST API中更有意义。可能更少工作,更直接。 – firedev