Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/403.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实时数据库don';无法检索指定的子项_Javascript_Firebase_React Native_Firebase Realtime Database - Fatal编程技术网

Javascript Firebase实时数据库don';无法检索指定的子项

Javascript Firebase实时数据库don';无法检索指定的子项,javascript,firebase,react-native,firebase-realtime-database,Javascript,Firebase,React Native,Firebase Realtime Database,我有这样的数据库结构: datas -data1 --name --city --date --logs ---log1 ---log2 ---log3 -data2 --name ... 现在,我发布了将“日志”放在“数据”父项中的消息,这是一个巨大的错误,因为它的子项是用户生成的,并且成长速度很快(子项下有太多数据),这会导致下载“数据1”父项的延迟 通常情况下,我会通过以下方式提取“数据1”: database().ref('datas/' + this.state.dataID).o

我有这样的数据库结构:

datas
-data1
--name
--city
--date
--logs
---log1
---log2
---log3

-data2
--name
...
现在,我发布了将“日志”放在“数据”父项中的消息,这是一个巨大的错误,因为它的子项是用户生成的,并且成长速度很快(子项下有太多数据),这会导致下载“数据1”父项的延迟

通常情况下,我会通过以下方式提取“数据1”:

database().ref('datas/' + this.state.dataID).on('value', function(snapshot) {

... })
我希望我能解释我的问题,我基本上忽略了“日志”孩子(我需要姓名、城市、日期) 由于项目已经启动,并且用户已经在使用它,所以我需要一个合适的方法


在firebase方面有什么方法可以做到这一点吗?

我认为你不会有一个简单的方法摆脱这一点

默认情况下,查询是深层的:它们总是返回整个子树

我只能看到两种选择:

  • 将日志迁移到其他位置(如果确实是大量数据,可以使用BiqQuery之类的工具,如果是事件,可以将其存储在Google Analytics中,这取决于日志的数量和类型)

  • 附加多个侦听器,而不是单个侦听器(取决于可行的临时解决方案中的条目数量):


  • 我不认为你会有一个简单的方法摆脱这个

    默认情况下,查询是深层的:它们总是返回整个子树

    我只能看到两种选择:

  • 将日志迁移到其他位置(如果确实是大量数据,可以使用BiqQuery之类的工具,如果是事件,可以将其存储在Google Analytics中,这取决于日志的数量和类型)

  • 附加多个侦听器,而不是单个侦听器(取决于可行的临时解决方案中的条目数量):

  •  let response={
           name:null,
           city:null,
           date:null
        }
        const refs = ['name', 'city', 'date'].map(key=>database().ref(`datas/${this.state.dataID}/${key}')
    
        refs.forEach(ref=>ref.on('value',snapshot=>{
    
     })