Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.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
Firebase 使用json字符串而不是子子树_Firebase_Firebase Realtime Database - Fatal编程技术网

Firebase 使用json字符串而不是子子树

Firebase 使用json字符串而不是子子树,firebase,firebase-realtime-database,Firebase,Firebase Realtime Database,我的数据库结构如下: base child1 sub tree of ~10 children and ~5 levels deep child2 sub tree of ~10 children and ~5 levels deep ... 现在我总是只获取/设置整个子树,也就是说,我永远不需要一个直接指向子树内部的ref 我的问题是,在这种情况下,在速度和/或空间方面,将每个子树存储为JSON字符串并在客户机上进行转换是否更有效 谢谢我曾多次在Firebas

我的数据库结构如下:

base
  child1
     sub tree of ~10 children and ~5 levels deep
  child2
     sub tree of ~10 children and ~5 levels deep
  ...
现在我总是只获取/设置整个子树,也就是说,我永远不需要一个直接指向子树内部的ref

我的问题是,在这种情况下,在速度和/或空间方面,将每个子树存储为JSON字符串并在客户机上进行转换是否更有效


谢谢

我曾多次在Firebase数据库中存储JSON字符串:

  • 存储GeoJSON特征;及
  • 存储每个用户的应用程序设置
GeoJSON被存储为字符串主要是因为该格式广泛使用了坐标数组。应用程序设置有大量嵌套

在这两种情况下,就Firebase而言,数据是不透明的,不需要查询其内容

我对Firebase的内部结构一无所知,但我非常怀疑您是否会从存储JSON字符串中看到任何效率或性能方面的好处。事实上,效率(可能还有性能)可能会更差。您几乎可以肯定Firebase不会将其内部数据存储为JSON。这意味着,在将数据存储为JSON字符串时,可能会存储更多的数据,因为JSON除了包含值外还包含键。这些数据还包括大括号、引号和转义符等

如果数据较大,则需要通过网络传输更多信息,这无助于提高性能

你可能想自己做一些分析。只需创建一个充满未编码数据和另一个充满JSON字符串的数据库,并比较大小差异。控制台中的“用法”选项卡将显示数据库的总体大小。如果您对实际传输的内容感兴趣,请使用Chrome开发工具(或类似工具)查看“网络”选项卡上的web套接字流量


简而言之,如果效率和性能是您考虑存储JSON字符串的唯一原因,那么您可能不想这么做。

我怀疑是否有人能直接回答这个问题,但您可以通过连接几个不同的节点和测试加载时间来轻松测试它。我希望了解firebase内部结构的人能够。。。