swift / firebase按多个元素排序

时间:2016-06-09 01:21:51

标签: ios swift firebase firebase-realtime-database

我有一个"房间"在我的数据库中看起来像这样

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")

        }
    }

没有任何事情发生,所以我输入了断点并且它击中但没有做任何事情。我必须对我如何写它有一个问题......

0 个答案:

没有答案