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

Ios 在Firebase中存储非用户数据的正确方法是什么?,ios,firebase,Ios,Firebase,我有一个Firebase应用程序,它可以存储用户数据并提供静态数据。我正在努力找到一种安全的方法来存储这些静态数据 静态数据是视频URL和其他信息的列表,用户将这些信息作为学习课程(预设数据)。这些可以周期性地改变 我的问题是,任何开发人员都可能通过单击按钮意外删除整个数据存储 这是我想要的,但不确定如何实现: 我将静态数据直接写入firebase 数据存在实时(应用程序)版本、开发(应用程序)版本和暂存(应用程序)版本-实时版本应不可编辑 当登台测试完成后,我想将所有这些数据迁移到live F

我有一个Firebase应用程序,它可以存储用户数据并提供静态数据。我正在努力找到一种安全的方法来存储这些静态数据

静态数据是视频URL和其他信息的列表,用户将这些信息作为学习课程(预设数据)。这些可以周期性地改变

我的问题是,任何开发人员都可能通过单击按钮意外删除整个数据存储

这是我想要的,但不确定如何实现:

  • 我将静态数据直接写入firebase
  • 数据存在实时(应用程序)版本、开发(应用程序)版本和暂存(应用程序)版本-实时版本应不可编辑
  • 当登台测试完成后,我想将所有这些数据迁移到live Firebase应用程序中,以获取静态数据
  • 我知道如何在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.."
            }
          }
        }
      }
    }
     }
    }
    

    根据我对您的理解,您最大的担忧似乎是开发人员意外删除了应用程序生产版本中的数据

    我不能完全确定您想要什么类型的解决方案,因此这里有几个选项:

  • 知道firebase做每日备份()可能会让人感到安慰,因此,如果您最大的担忧是丢失数据,这就解决了您的许多问题。您还可以通过API调用备份自己的数据:

  • 我所能看到的最简单但最手动的方法是导出firebase dev数据,然后使用导入和导出按钮将其上载到应用程序的暂存和实时版本:

  • 如果你想找更自动化的东西。你必须为自己编写一些代码和一个“管理员”门户。该门户可以让您在登录后访问两个firebase数据库。您可以创建一个工具来比较三个数据库之间的json差异(可能对类的唯一ID进行较浅的搜索),并且可以将数据推送到应用程序的临时版本和实时版本。这可能是更具“可伸缩性”的路线,尽管在处理大型数据集时,所有这些都有其问题


  • 根据我对您的理解,您最大的担忧似乎是开发人员意外删除了应用程序生产版本中的数据

    我不能完全确定您想要什么类型的解决方案,因此这里有几个选项:

  • 知道firebase做每日备份()可能会让人感到安慰,因此,如果您最大的担忧是丢失数据,这就解决了您的许多问题。您还可以通过API调用备份自己的数据:

  • 我所能看到的最简单但最手动的方法是导出firebase dev数据,然后使用导入和导出按钮将其上载到应用程序的暂存和实时版本:

  • 如果你想找更自动化的东西。你必须为自己编写一些代码和一个“管理员”门户。该门户可以让您在登录后访问两个firebase数据库。您可以创建一个工具来比较三个数据库之间的json差异(可能对类的唯一ID进行较浅的搜索),并且可以将数据推送到应用程序的临时版本和实时版本。这可能是更具“可伸缩性”的路线,尽管在处理大型数据集时,所有这些都有其问题


  • 你能告诉我们存储在数据库中的实际json吗?如果我们不知道您存储的内容的名称,那么很难编写规则。似乎这可以通过设置一个规则来实现,该规则不允许写入具有特定属性的视频。迁移可能只允许登录管理员执行。我用示例数据更新了迁移。我最担心的是,一个微小的错误更改可能会影响成千上万的用户,因此我希望对所有数据管理都格外谨慎谢谢!再读几遍之后,我想我可能不需要它了,对不起。我希望我的回答有帮助。大型数据集很难(firebase与否),但如果一开始就有一个相对较小的数据集,那么手动操作可能是一个很好的入门选择。祝你好运你能告诉我们存储在数据库中的实际json吗?如果我们不知道您存储的内容的名称,那么很难编写规则。似乎这可以通过设置一个规则来实现,该规则不允许写入具有特定属性的视频。迁移可能只允许登录管理员执行。我用示例数据更新了迁移。我最担心的是,一个微小的错误更改可能会影响成千上万的用户,因此我希望对所有数据管理都格外谨慎谢谢!再读几遍之后,我想我可能不需要它了,对不起。我希望我的回答有帮助。大型数据集很难(firebase与否),但如果一开始就有一个相对较小的数据集,那么手动操作可能是一个很好的入门选择。祝你好运这是个好消息。我现在几乎想知道,将静态数据放在自己的RESTAPI中是否更有意义。可能是更少的工作和更直接。这是一个很好的信息。我现在几乎想知道,将静态数据放在自己的RESTAPI中是否更有意义。可能工作更少,更直接。