Firebase REST订单接收不起作用或文档真的很差?

时间:2017-06-09 00:08:24

标签: php rest firebase firebase-realtime-database


我正在使用带有PHP Curl的Firebase REST API 我正在使用Firebase数据库遵守此规则:

"rules": {
    // ...
    "structure" : {
        "pages" : {
           ".indexOn":["order"]
        }
    }
    // ...
}

我的数据是:

// ...
"structure" : {
    "pages" : {
       "Some Random String or UID from Firebase" : {
            "some_data" : "string",
            "order" : 0
       },
       "Some Random String 2 or UID from Firebase 2" : {
            "some_data" : "string",
            "order" : 1
       }
       // ... and so on ...
    }
}

我阅读了文档。来自Firebase herehere。 尝试使用orderByChild进行过滤:

GET - https://[my-project].firebaseio.com/structure/pages.json?orderByChild="order"&print=pretty

并且订购:

GET - https://[my-project].firebaseio.com/structure/pages.json?orderBy="order"&print=pretty

我得到了结果,但没有订购! 尝试更改规则并将其设置为$ key自定义和结果,并且没有任何订购。

我在文档中遗漏了什么?因为我多次阅读数据和规则就像“恐龙”这样的例子。

如果缺少某些信息,请告诉我编辑并放在这里 谢谢你的耐心等待!

1 个答案:

答案 0 :(得分:3)

first documentation page you linked包含此警告(向上滚动一个屏幕);

  

过滤后的数据无序返回:使用REST API时,   自JSON以来,过滤结果以未定义的顺序返回   口译员不执行任何订购。如果您的数据顺序是   重要的是,您应该在应用程序之后对结果进行排序   从Firebase返回。

当与其他过滤选项结合使用时,订购会对过滤做出贡献:limitToFirstlimitToLaststartAtendAtequalTo。排序和限制是在服务器上完成的,但是当您在客户端看到结果时,它们是无序的。