首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >android上的Firebase如何只返回没有子节点的节点

android上的Firebase如何只返回没有子节点的节点
EN

Stack Overflow用户
提问于 2018-11-17 04:54:21
回答 2查看 84关注 0票数 0

这可能是一个奇怪的问题。然而,我的firebase数据库的免费配额快用完了,在开始付钱之前,我想优化一些我的firebase查询。

我观察了firebase控制台,我们可以在其中管理数据库,我注意到它只显示每个级别上的节点。要查看子节点,我们必须单击+按钮(在节点名称旁边)或节点本身。

我相信这种行为是为了避免一次请求整个数据库,这会导致巨大的流量和资源消耗。我也相信firebase控制台是建立在firebase公共API之上的,所以我们应该可以实现相同的行为。

我的问题是考虑以下数据库:

代码语言:javascript
复制
{  
   "root":{  
      "node1":{  
         "childA":"a",
         "childB":"b",
         "childC":"c"
      },
      "node2":{  
         "childA":"2a",
         "childB":"2b",
         "childC":"2c"
      },
      "node3":{  
         "childA":"3a",
         "childB":"3b",
         "childC":"3c"
      },
      "node4":{  
         "childA":"4a",
         "childB":"4b",
         "childC":"4c"
      },
      "lululu":{  
         "childA":"1a",
         "childB":"2b",
         "childC":"3c"
      },
      "node1214":{  
         "childA":"1a",
         "childB":"1b",
         "childC":"1c"
      },
      "node10":{  
         "childA":"a",
         "childB":"b",
         "childC":"c"
      }
   }
}

如何在没有内容的情况下获得root下的节点列表(例如,像["node1", "node2", "node3"...]这样的列表,或者作为适当的Map,但没有子数据(以减少带宽使用)?

EN

回答 2

Stack Overflow用户

发布于 2018-11-17 05:00:07

这对于任何移动SDK都是不可能的。只有使用shallow参数的REST API才能这样做。

票数 1
EN

Stack Overflow用户

发布于 2018-11-17 05:14:16

在我看来,数据结构应该尽可能扁平化,以避免嵌套数据。您可以考虑按如下方式重组数据。你可以考虑看看Firebase中的best practices of storing and organizing your data

代码语言:javascript
复制
{  
   "root": {  
       "node1":"1",
       "node2":"2",
       "node3":"3"
   },

    "nodes" : {  
       "1": {  
           "childA":"a",
           "childB":"b",
           "childC":"c"
       },
       "2":{  
           "childA":"2a",
           "childB":"2b",
           "childC":"2c"
       },
       "3":{  
           "childA":"3a",
           "childB":"3b",
           "childC":"3c"
       }
    }
}

当您获得项时,您也会获得该项下的子项。所以要避免嵌套你的数据。您也可以考虑检查answer here

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53345237

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档