我有一个"房间"在我的数据库中看起来像这样
room
-KJe22sduQMz1DIs_DH6
allowedParticipants:
14
createdBy:
"Mr Tester"
members:
"nmeMYnnSatRch5qKPJKIe7jEOLy2"
participating:
true
status:
"seedling"
theme:
"Cats"
totalNumberOfMembers:
1
我想首先按照这个特定房间里的猫主题进行排序,但如果totalNumberOfMembers等于allowedParticipants,或者状态为" open&#,我不想在tableview中显示房间34; ...如果它是幼苗,或者进展,或者关闭,那么我甚至不希望它出现在tableview上
我想在桌面上看到的只是开放式房间
我认为我找到了正确的规则,但它说
查询一次只能按一个键排序。在同一个查询上多次调用orderByChild()会引发错误。
这是正确的规则还是我在错误的地方? 谢谢
修改
由于Firebase不支持我想要做的事情,因此我尝试按照评论中提供的示例进行操作
我在考虑如何编写时遇到问题。如果数据结构保持原样,我尝试按照此代码段
var ref = new Firebase('https://your.firebaseio.com/');
ref
.orderBy('genre')
.startAt('comedy').endAt('comedy')
.on('value', function(snapshot) {
var movie = snapshot.val();
if (movie.lead == 'Jack Nicholson') {
console.log(movie);
}
});
这是我在精神上陷入困境的地方
ref.queryOrderedByChild("status").queryStartingAtValue ....
也许我只是误解了这条规则,但价值却是一个不同的孩子吧?谢谢。
修改2
我试过这个无济于事..
createdRoomRefGlobal.queryOrderedByChild("status").queryStartingAtValue("active").queryEndingAtValue("active").observeEventType(.Value) { (snapshot: FIRDataSnapshot) in
let themeOfEvent = snapshot.value
if themeOfEvent?.value == pickedTheme {
print("foo")
}
}
没有任何事情发生,所以我输入了断点并且它击中但没有做任何事情。我必须对我如何写它有一个问题......