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
Firebase OrderByChild返回额外的空子级_Firebase_Firebase Realtime Database - Fatal编程技术网

Firebase OrderByChild返回额外的空子级

Firebase OrderByChild返回额外的空子级,firebase,firebase-realtime-database,Firebase,Firebase Realtime Database,我试图用orderBy进行查询,结果得到了另一个空的子对象 组件.ts loadCourses(){ this.profileProvider.getSpecificCourse().on('value',f=>{ console.log(f.val()); }) } 提供者 getSpecificCourse(){ return firebase.database().ref(`CoursesRelated`).orderByChild('cs').equalT

我试图用orderBy进行查询,结果得到了另一个空的子对象

组件.ts

 loadCourses(){
this.profileProvider.getSpecificCourse().on('value',f=>{
  console.log(f.val());  
})
}

提供者

     getSpecificCourse(){
  return firebase.database().ref(`CoursesRelated`).orderByChild('cs').equalTo(2);  

 }
火基结构

正在获取另一个空节点

预期结果: 在没有空节点的情况下得到相同的结果


此外,我还想制作另一个orderby并使ls等于6,我如何才能做到这一点?

您正在使用数字索引存储节点,这意味着Firebase SDK将它们解释为数组。对于结果:
{“0”:{…},“2”:{…}
然后创建一个三元素数组
[{…},null,{…}]

有关Firebase如何处理阵列的详细说明,请阅读本文

消除此行为的方法是不使用顺序数字键。最简单的方法是通过调用Firebase的
push()
方法(该方法以
-K..
格式生成键,并进行了说明)添加项,或者通过在数字前加上固定字符串(例如
Course0
Course1
Course2
)。由于这些格式是字符串,因此它们绕过了Firebase SDK的数组强制逻辑