Javascript 使用Firebase和query选择字段子集的NoSQL数据结构
我正在使用Firebase创建一个NoSQL数据库,但作为一个SQL思考者,我的头脑需要一些关于Firebase查询和NoSQL数据结构的建议 我正在为一个同样使用Ionic 2(AngularJS 2)的移动应用程序做一些实验,我关心的是速度(用户时间)和表的正确结构 在应用程序中,我有一个用户制作的东西列表,用户可以是一个组的一部分,现在在Firebase网站的非标准化之后,我制作了这个模式Javascript 使用Firebase和query选择字段子集的NoSQL数据结构,javascript,angularjs,firebase,firebase-realtime-database,nosql,Javascript,Angularjs,Firebase,Firebase Realtime Database,Nosql,我正在使用Firebase创建一个NoSQL数据库,但作为一个SQL思考者,我的头脑需要一些关于Firebase查询和NoSQL数据结构的建议 我正在为一个同样使用Ionic 2(AngularJS 2)的移动应用程序做一些实验,我关心的是速度(用户时间)和表的正确结构 在应用程序中,我有一个用户制作的东西列表,用户可以是一个组的一部分,现在在Firebase网站的非标准化之后,我制作了这个模式 Users : { Id : { Name: string Pic
Users : {
Id : {
Name: string
Picture: base64 56x56 pixels (image)
Addresses : {}
Groups : {
Worker: boolean
Student: boolean
}
}
}
Groups : {
Worker : {
Desc: string
Members : {
Userid: boolean
}
}
Student : {
Desc: string
Members : {
Userid: boolean
}
}
}
Made : {
Id : {
Name: string
Thumb: base64 56x56 pixels (image)
Desc: string
User: userid
Images: base64 dimensions could vary
}
}
我要做的是显示一个用户所做的事情的列表,只有很少的信息,比如姓名和拇指图像,通过点击它打开其他信息的描述
现在,如果我使用以下代码片段获取列表,它将返回所有信息,但在开始时,我只需要名称和拇指(或其他信息)
那么,firebase中是否有任何方法可以执行类似(?)的操作:
为了只获取每个查询所需的字段?或
另一个表只包含名称和图像更好吗
同时拥有拇指和图像是个好主意吗?为了加速json,因为拇指通常比图像小
查看Firebase文档,似乎小于10mb的图像可以作为base64保存到文档中,以防存储中的图像更大。您对此有何看法?Firebase客户端总是检索完整的节点。无法仅获取节点属性的子集 与往常一样:如果在数据模型上实现用例时遇到问题,请更改数据模型以适合您的用例。因此,在本例中,这意味着您可以将名称和缩略图拆分为单独的节点
MadeListinfo : {
Id : {
Name: string
Thumb: base64 56x56 pixels (image)
}
}
Firebase客户端始终检索完整的节点。无法仅获取节点属性的子集 与往常一样:如果在数据模型上实现用例时遇到问题,请更改数据模型以适合您的用例。因此,在本例中,这意味着您可以将名称和缩略图拆分为单独的节点
MadeListinfo : {
Id : {
Name: string
Thumb: base64 56x56 pixels (image)
}
}
Firebase数据库对节点大小有10MB的限制,这并不意味着您应该在数据库中存储该大小的图像。用户生成的数据(您不会查询其结构)可以更高效地存储在Firebase存储上或从Firebase存储提供服务。顺便说一句,每个帖子只能问一个问题。否则很难一次性回答所有问题。Firebase数据库对节点大小有10MB的限制,这并不意味着您应该在数据库中存储该大小的图像。用户生成的数据(您不会查询其结构)可以更高效地存储在Firebase存储上或从Firebase存储中提供。顺便说一句,每个帖子只能问一个问题。否则很难一次性回答所有问题。谢谢您的回答。这就是我想把数据模型分成不同的部分,只得到我需要的数据。当然,这意味着在编写更改时要更加小心。如果我的答案有用,请单击左侧的upvote按钮。如果它回答了您的问题,请单击复选标记接受它。这样别人就知道你得到了(足够的)帮助。谢谢你的回答。这就是我想把数据模型分成不同的部分,只得到我需要的数据。当然,这意味着在编写更改时要更加小心。如果我的答案有用,请单击左侧的upvote按钮。如果它回答了您的问题,请单击复选标记接受它。这样别人就知道你得到了(足够的)帮助。
MadeListinfo : {
Id : {
Name: string
Thumb: base64 56x56 pixels (image)
}
}