首页 文章

在Firebase中按孩子订购时,您如何按优先顺序排序?

提问于
浏览
0

我基本上想要这样做:

var ref = new Firebase("[myapp].firebaseio.com");
var things = ref.child("things");
var thingsQuery = things.orderByPriority().orderByChild("owner").equalTo("[ownerKey]")
var angularReadyThings = $firebaseArray(thingsQuery);

我'm using Firebase'的查询功能orderByChild()和equalTo()获取数据子集并从该查询创建$ firebaseArray以显示特定节点下的事物列表的一部分 . 用户可以拖放列表以在每个项目上设置$ priority,并且我可以正确保存优先级,但数据 doesn't 按优先级排序(我认为这是有意义的) . 我可以't use orderByPriority() along with orderByChild() like I have it above on line 3 (multiple orderBys aren' t支持) . 在我的ng-repeat上使用orderBy:'$priority'过滤器(我正在使用angular),直到我拖放对列表进行排序,此时项目将恢复为其检索(无序)状态 .

有没有办法使用orderByChild()和equalTo()并从Firebase获得按优先级排序的结果?

1 回答

  • 2

    Firebase只能按单个条件排序/过滤,无论是密钥,子属性还是优先级 .

    您似乎只想按子属性进行过滤,然后按优先级排序 . 在这种情况下,您可以使用Firebase查询执行 ref.orderByChild("owner").equalTo(ownerKey) 并执行重新排序客户端

    旁注:没有理由继续使用Firebase的旧优先级进行订购 . 只需添加具有相同值的命名子属性就更清楚了 .

相关问题