Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用Firebase和query选择字段子集的NoSQL数据结构_Javascript_Angularjs_Firebase_Firebase Realtime Database_Nosql - Fatal编程技术网

Javascript 使用Firebase和query选择字段子集的NoSQL数据结构

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

我正在使用Firebase创建一个NoSQL数据库,但作为一个SQL思考者,我的头脑需要一些关于Firebase查询和NoSQL数据结构的建议

我正在为一个同样使用Ionic 2(AngularJS 2)的移动应用程序做一些实验,我关心的是速度(用户时间)和表的正确结构

在应用程序中,我有一个用户制作的东西列表,用户可以是一个组的一部分,现在在Firebase网站的非标准化之后,我制作了这个模式

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)
  }
}