【问题标题】:Firebase Database retrieve unrelated nodesFirebase 数据库检索不相关的节点
【发布时间】:2017-01-13 17:49:02
【问题描述】:

我正在使用 Firebase 框架为我正在做的最终项目创建一个 WepApp。我正在管理小型航空公司。我的数据库结构如下:

{
  destination:
     {New-York:
          {
           1:{
              person1:"ADAM",
              person2:"Joy"}
           2...31:
       }
      Los-Angeles:{
            1:{
               preson1:"Roy",
               person2:"Noy"
              }
             2..31:
          }
   }

如何仅从New-York[1] 检索person1 和从Los-Angeles[5] 检索Person2?可能吗?或者其他人有其他解决方案不会杀死我的带宽积分?非常感谢。

**编辑:我将它用于 Web 应用程序,因此我正在使用 JavaScript 编写代码(使用 Web-storm IDE)。 我尝试提取整个数据库,这意味着使用以下方法检索整个“目标”对象:

var ref=firebase.database().ref('/destination/').once("value");
ref.then(function(snapshot){MY-CODE...})

但是这样做我正在“吃掉”我的带宽分配

【问题讨论】:

  • 更清楚你的Q,指定你使用的语言和平台。也给我们你有什么尝试...
  • 正如 Dravidian 所说:如果不了解您目前如何解决这个问题,很难想出更好的解决方案。也就是说:如果您认为您当前的解决方案不是最理想的,那么您很可能必须考虑一种更好地支持您的应用程序用例的数据结构。我强烈推荐在NoSQL data modeling阅读这篇文章。
  • 嘿.. 我编辑了我的问题,希望得到更好的解释

标签: javascript firebase firebase-realtime-database


【解决方案1】:

如果要检索存储在person1或person2中的值,则只需指定完整路径,然后调用snapshot.val(),它将返回存储在该位置的值。

firebase.database().ref('destination/New-York/1/person1').on('value', function(snapshot) {
    console.log(snapshot.val()); //ADAM
});

firebase.database().ref('destination/Los-Angeles/5/person2').on('value', function(snapshot) {
    console.log(snapshot.val()); //Name of Person 2
});

【讨论】:

  • 嘿,非常感谢,.这是显而易见的解决方案..首先-我需要一起处理数据,其次从数据库中提取信息需要大约 800 毫秒。那是很多时间。我正在寻找其他解决方案
猜你喜欢
  • 2020-04-22
  • 2019-02-07
  • 1970-01-01
  • 2021-12-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多