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

{
  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-被包括在angularfer2的2.0.0-beta.7释放中得到解决。
这个问题已经用this pull request解决了,它应该包含在2.0.0-beta.7之后的angularfer2的发布版本中。
使用修复程序,如果创建如下查询:

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

它们的行为将与您预期的一样,并且只返回不具有read属性的列表项。

10-06 12:22