检索用户数据以在Firebase iOS中制作排行榜

检索用户数据以在Firebase iOS中制作排行榜,ios,firebase,firebase-realtime-database,Ios,Firebase,Firebase Realtime Database,我正在尝试使用Google Firebase数据库创建排行榜,我已成功地将我的用户及其分数添加到数据库中,如下图所示。我正在尝试将Person 1到Person 8的数据检索到我代码中的一个数组中,然后从那里我可以对它们进行排序并将它们添加到我的排行榜中。我不知道如何系统地检索用户和他们的分数,而不知道他们的孩子的名字,因为用户会输入他们自己的名字。任何帮助都将不胜感激 这应该按照分数的升序检索/打印用户 usersRef.queryOrderedByValue().observe(.val

我正在尝试使用Google Firebase数据库创建排行榜,我已成功地将我的用户及其分数添加到数据库中,如下图所示。我正在尝试将Person 1到Person 8的数据检索到我代码中的一个数组中,然后从那里我可以对它们进行排序并将它们添加到我的排行榜中。我不知道如何系统地检索用户和他们的分数,而不知道他们的孩子的名字,因为用户会输入他们自己的名字。任何帮助都将不胜感激


这应该按照分数的升序检索/打印用户

  usersRef.queryOrderedByValue().observe(.value, with: { (snapshot) in
      for child in snapshot.children {
          print((child as! DataSnapshot).key)
      }
  })
对我来说,这张照片:

第四个人

第一人

第二人

第三人

第五个人

第七人

第6人

第八人

对于排行榜,您可能希望限制检索的用户数:

_usersRef.queryOrderedByValue().queryLimited(toLast: 10).observe(.value) { snapshot in
  ...

这将只返回前10个分数,仍然按升序打印。要按降序获取它们,您必须在客户端中反转它们。

非常感谢您的回复。我不得不稍微调整代码以解决出现的一些错误,但我无法修复的一个错误是“密钥使用不明确”。你知道我该怎么解决吗?这是我放进去的。如果评论中的格式不好,很抱歉<代码>覆盖func VIEWDIDYKEY(uuAnimated:Bool){super.VIEWDIDYDEBEY(动画)rootRef.child(“用户”).queryOrderedByKey().observe(.value,带:{snapshot in for child in snapshot.children{print((child as AnyObject.key)}}它可能必须是
child?.key
。我从来没有完全确定那里的Swift语法。这并没有解决任何问题。我会做一些调查,看看能不能找到什么。无论如何,谢谢你。我修改了代码,调用了正确的订购方法。我还用适当的downcast更新了它,“as!DataSnapshot”修复了所有问题,并且它可以正常工作。我应该可以从这里开始,但如果我还有任何问题,我一定会回来的。非常感谢你,你帮了我大忙!