AngularFire2:查询子项是否存在

我打算从我的数据库中获取一个列表,其中某些记录包含可以设置的属性.我想查询和显示没有此属性的项目

{
  books: {
    book_3: {
     title: "Return of The King"
    },
    book_2: {
     title: "The Two Towers"
    },
    book_1: {
     title: "The Fellowship of the Ring"
     read: 1256953732
    }
  }
}

我读过第一本书,我想展示剩下的两本书.
在Firebase中我做了:

fbl.child('books').orderByChild('read').equalTo(null).on("value", function(data) { 
 // handle data
}

在AngularFire2中我会做类似的事情:

this.af.database.list('books', { query: {
  orderByChild: 'read',
  equalTo: null
}});

第一种方式有效,我得到book_2,book_3,但AngularFire2方式返回整个列表!是否有值可以表示为空值?我试过布尔,空字符串等但似乎没什么用.

也许这是一个错误.

最佳答案 这个问题已经修复了
this pull request – 它包含在AngularFire2的2.0.0-beta.7版本中.

该问题已通过this pull request修复 – 应该包含在2.0.0-beta.7之后的AngularFire2的已发布版本中.

使用此修复程序,如果您创建这样的查询:

this.af.database.list('books', { query: {
  orderByChild: 'read',
  equalTo: null
}});

它们的行为与您期望的一样,并且仅返回没有读取属性的列表项.

点赞