Ios Firebase排序查询提供(未排序的)字典结果

Ios Firebase排序查询提供(未排序的)字典结果,ios,firebase,firebase-realtime-database,Ios,Firebase,Firebase Realtime Database,因此,我确信我在这里遗漏了一些东西,但是当我想查询某个游戏中的前10名分数时,Firebase会返回前10名分数,但是因为它们随后会作为字典(使用childByAutoId生成的密钥)返回,所以在客户端接收时它们是“未排序”的(因此,要显示前10名,您必须再次对其进行排序) 上述代码给出了以下输出(这些是数据库中~20分中的前4分): 我知道重新排序很容易,但不得不这样做似乎很奇怪。毕竟有一个简单的解决方案,只需获取枚举数而不是字典: NSEnumerator *enumerator = sn

因此,我确信我在这里遗漏了一些东西,但是当我想查询某个游戏中的前10名分数时,Firebase会返回前10名分数,但是因为它们随后会作为字典(使用childByAutoId生成的密钥)返回,所以在客户端接收时它们是“未排序”的(因此,要显示前10名,您必须再次对其进行排序)

上述代码给出了以下输出(这些是数据库中~20分中的前4分):


我知道重新排序很容易,但不得不这样做似乎很奇怪。

毕竟有一个简单的解决方案,只需获取枚举数而不是字典:

 NSEnumerator *enumerator = snapshot.children;
然后用
[enumerator nextObject]

    {
    "-KIUhe_9TLQoy_zNbJT0" =     {
        score = 290;
        userid = oMqoPGJYsGWHffYx8N6vDk3Osh72;
    };
    "-KIUj8VUyNMgyZ135dI_" =     {
        score = 560;
        userid = oMqoPGJYsGWHffYx8N6vDk3Osh72;
    };
    "-KIUjK15Gy9PRB_JBWOA" =     {
        score = 240;
        userid = oMqoPGJYsGWHffYx8N6vDk3Osh72;
    };
    "-KIUlZ1a03r7bjPYNueG" =     {
        score = 740;
        userid = oMqoPGJYsGWHffYx8N6vDk3Osh72;
    };
}
 NSEnumerator *enumerator = snapshot.children;