Firebase OrderByChild返回额外的空子级
我试图用orderBy进行查询,结果得到了另一个空的子对象 组件.tsFirebase 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
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的数组强制逻辑