firebase - 我无法理解 firebase 中的名称和值
问题描述
我是 RDBMS 用户,但后来转向 RTDB。由于我们在 RDBMS 中有列,并且数据以行的形式查看。让我们有表名用户和列是名字、姓氏和用户名。我们在 James、John 和 Jhonathan 列中插入数据。RTDB 如何使用名称和值,每个用户在 RDBMS 中都有一个特定的行,但 RTDB 是一个树形结构。帮帮我,我很困惑。
解决方案
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 非常擅长解释它们。
推荐阅读
- python - 如何从 libfreenect2 中保存 rgb 和深度数据?
- javascript - 将视频编解码器转换为 vp9 到 mp4?
- javascript - 当你选择它并保存到数据库时如何锁定颜色,这是刷新页面时选择的颜色消失了
- reactjs - 为什么我看不到 currentUser 使用带有 react native 的 firebase?
- javascript - 无法理解 JSON.parse 的错误
- flutter - 如何用颤动动画实现飞车动画颤动
- ruby-on-rails - 如何在haml代码中删除一行表?
- linux - Linux命令导航同一目录中的槽文件夹
- java - 我需要 Docker 容器中的任何服务器来运行我的 Java 应用程序吗?
- java - Spring 不支持请求方法“POST”