Firebase按字段过滤并按另一个字段排序

时间:2018-12-17 15:55:26

标签: firebase firebase-realtime-database

我在Firebase中有一个数据库,其中包含以下数据:

{
    user: 1;
    points: 100;
},
{
    user: 1;
    points: 510;
},
{
    user: 2;
    points: 110;
},
{
    user: 1;
    points: 85;
},
{
    user: 3;
    points: 300;
},
{
    user: 1;
    points: 500;
}

如何进行查询,以便仅显示用户1的字段(使用REST查询从高到低排序)?

我尝试过

https://xxxxxx.firebaseio.com/tirada.json?orderBy="user"&equalTo="1"

它返回按用户过滤的结果,但不按点排序

    {
        user: 1;
        points: 100;
    },
    {
        user: 1;
        points: 510;
    },
    {
        user: 1;
        points: 85;
    },
    {
        user: 1;
        points: 500;
    }

我需要这个结果

{
        user: 1;
        points: 85;
    },
    {
        user: 1;
        points: 100;
    },
    {
        user: 1;
        points: 500;
    },
    {
        user: 1;
        points: 510;
    }

谢谢

1 个答案:

答案 0 :(得分:1)

Firebase数据库查询只能对单个属性进行排序/过滤。在许多情况下,可以将要过滤的值组合到单个(合成)属性中。在您的情况下,它将转换为属性"user_points": "1_510",然后可以对其进行订购/过滤。 但是REST API返回原始JSON对象,并且JSON对象中的属性顺序未定义。因此,这意味着您无论如何都必须对客户端代码中的点值对结果进行排序。鉴于此,您最好还是坚持只对user进行过滤。

另请参阅:

相关问题