【问题标题】:Firebase OrderByChild return extra empty childFirebase OrderByChild 返回额外的空子
【发布时间】:2017-10-13 22:55:44
【问题描述】:

我正在尝试使用 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 firebase-realtime-database


    【解决方案1】:

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

    如需详细了解 Firebase 如何处理数组,请阅读这篇博文 Best Practices: Arrays in Firebase

    摆脱这种行为的方法是不使用顺序数字键。最简单的方法是通过调用 Firebase 的 push() 方法(生成格式为 -K... 的密钥并解释为 here)添加项目,或者在数字前加上固定字符串(例如 @987654327 @、Course1Course2)。由于这些格式是字符串,它们绕过了 Firebase SDK 的数组强制逻辑。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-17
      • 2018-09-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-25
      相关资源
      最近更新 更多