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"
},
您可以强制实施架构,但您可以在数据库的服务器端安全规则中自行执行此操作。在那里你可以validate the structure of your data。
学习 NoSQL 是一个太大的话题,无法在这里简明扼要地介绍它,但我希望这能给您一些入门的想法。在此之后,我建议阅读;NoSQL data modeling,观看视频系列Firebase for SQL developers,也可能还有Getting to know Cloud Firestore。最后一个适用于 Firebase 的其他 NoSQL 数据库,但许多概念也适用于实时数据库 - Todd 非常擅长解释它们。