首页 > 解决方案 > 我无法理解 firebase 中的名称和值

问题描述

我是 RDBMS 用户,但后来转向 RTDB。由于我们在 RDBMS 中有列,并且数据以行的形式查看。让我们有表名用户和列是名字、姓氏和用户名。我们在 James、John 和 Jhonathan 列中插入数据。RTDB 如何使用名称和值,每个用户在 RDBMS 中都有一个特定的行,但 RTDB 是一个树形结构。帮帮我,我很困惑。

标签: firebasefirebase-realtime-databasenosql

解决方案


Firebase 实时数据库是一个 NoSQL 数据库,因此尝试将关系概念投射到它是行不通的。

也就是说,如果您想在实时数据库中存储用户列表,通常看起来像:

{
  "Users": {
    "idOfUser1": {
      "firstname": "James",
      "lastname": "Last Name",
      "username": "James123"
    },
    "idOfUser2": {
      "firstname": "John",
      "lastname": "Another Name",
      "username": "John456"
    },
    "idOfUser3": {
      "firstname": "Jhonathan",
      "lastname": "One more Last Name",
      "username": "Jhonathan789"
    }
  }
}

我们在这里为每个用户复制属性名称,但它们的用途与 SQL 数据库中的列名称相同。我们复制它们的原因是数据库是无模式的,没有任何定义可以阻止 John 在上述结构中具有其他属性:

"idOfUser2": {
  "firstname": "John",
  "lastname": "Another Name",
  "likesSushi": true,
  "username": "John456"
},

可以强制实施模式,但由您自己在数据库的服务器端安全规则中执行。在那里您可以验证数据的结构

学习 NoSQL 是一个太大的话题,无法在这里简明扼要地介绍它,但我希望这能给您一些入门的想法。在此之后,我建议阅读;NoSQL 数据建模,观看面向 SQL 开发人员的 Firebase系列视频,还可能还会了解 Cloud Firestore。最后一个适用于 Firebase 的其他 NoSQL 数据库,但许多概念也适用于实时数据库 - Todd 非常擅长解释它们。


推荐阅读