Firebase 实时数据库中的数据组织2025年3月17日 | 阅读 3 分钟 在上一节中,我们了解了如何设置 Firebase 控制台和 Android 应用程序以使用实时数据库。在本节中,我们将讨论数据在 Firebase 或 Firebase 实时数据库中的组织方式。我们已经知道 Firebase 中的数据以 JSON 文件格式存储。那么,JSON 格式在 Firebase 实时数据库中是什么意思呢? ![]() 数据库结构创建结构良好的数据库需要相当多的深思熟虑。这意味着我们需要计划如何保存数据,然后检索数据,以使该过程尽可能简单。 在 Firebase 实时数据库中,数据存储为 JSON 对象。我们可以将数据库视为云托管的 JSON 树。没有表和记录,这意味着它是一个 NoSQL 数据库。存储的数据可以表示为数据库中的某些本机类型,这些类型对应于可用的 JSON 类型,以帮助我们编写更易于维护的代码。当我们将数据添加到 JSON 树时,它会成为现有 JSON 结构中的一个节点,并带有一个关联的键。我们可以提供自己的键,例如用户 ID 或名称,也可以使用 push() 函数提供键。 让我们看一个例子,了解数据在 Firebase 实时数据库中 JSON 树中的样子。让我们考虑存储聊天应用程序数据的例子。此聊天应用程序允许用户存储基本资料和联系人列表。用户资料将位于诸如 Users/$uid 的路径上。User 是其中的一个节点,它将有一个与 ID 关联的排序主键。因此,我们可以唯一地访问每一个。 Users 下的所有内容都将是 Users 的特定节点,我们将使用 Users.Students、Users.Mstudent 和 Users.Tsudent 等引用来访问它们。这是基本的树结构,它是什么样子的,我们注意到它有很多嵌套。在 Cloud 中,Firestore 嵌套没有那么多,嵌套可能会导致一些性能问题。 因此,在上面的例子中,Student 是 Users 下的一个节点。 Name 和 contacts 是 Student 和 Faculty 下的节点,Staff 是 Users 下的节点。 避免嵌套数据嵌套可能会导致性能下降。因此,我们必须尽可能避免嵌套数据。这是必要的,但我们避免它,尤其是在我们有一个大型数据集的情况下,因为可能会出现性能问题。我们必须尝试使我们的数据结构尽可能扁平。 示例 这是一个嵌套不良的数据结构,因为迭代 Chats 节点子节点的子节点需要获取对话标题列表。因此,这可能需要数百兆字节的消息。在这个例子中,如果我们正在迭代数据,那么它将非常成问题。 扁平化数据结构为了避免嵌套数据,请尝试在我们的数据结构中进行扁平化。将数据拆分到单独的路径中会更好。因此,它可以根据需要有效地下载单独的调用。 |
我们请求您订阅我们的新闻通讯以获取最新更新。