按 2 个键对 FireBase 中的数据进行排序

2024-04-16

我构建了游戏应用程序,并将记录保存在 FireBase 的实时数据库中。 数据库看看:

{
    "Ka8xxTgyFB8yYKH50j" : {
        "score" : 10,
        "seconds" : 1325
    },
    "K222xTgyFBF33FD50j" : {
        "score" : 10,
        "seconds" : 425
    },
    "Ka32T23R328yYKH50j" : {
        "score" : 5,
        "seconds" : 115
    },
    "F323F32FB8yYKH50j" : {
        "score" : 30,
        "seconds" : 2335
    }
    }
}

我想从 FireBase 获取按分数排序的数据,然后按秒排序。 本例中数据的正确顺序应该是:

得分:5秒:115

得分:10 秒:425

得分:10秒:1325

得分:30 秒:2335

我如何使用 orderByChild 或其他方式来做到这一点? 谢谢


由于 firebase 不允许多重排序,因此我建议您创建一个排序列并根据您的排序要求更新它。 在您的情况下,您可以连接秒和分数,然后将其存储为整数。为了给它一致的长度,秒必须用 0 填充,比如说 6 个字符(取决于你的分数和秒最大可能值)。 比方说,最大分数是 100,最大秒数是 50000,您的排序顺序将是以下组合score and 5 chars of seconds,转换为整数。

Example:

{
    "Ka8xxTgyFB8yYKH50j" : {
        "score" : 10,
        "seconds" : 1325,
        "sort_order": 1001325
    },
    "K222xTgyFBF33FD50j" : {
        "score" : 10,
        "seconds" : 425,
        "sort_order": 1000425
    },
    "Ka32T23R328yYKH50j" : {
        "score" : 5,
        "seconds" : 115
        "sort_order": 5000115
    },
    "F323F32FB8yYKH50j" : {
        "score" : 30,
        "seconds" : 2335,
        "sort_order": 3002335
    }
}

这样,您可以非常快速地按升序和降序对其进行排序。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

按 2 个键对 FireBase 中的数据进行排序 的相关文章

  • 如何使用gradle这样的格式更改apk名称?

    当我使用 gradle 构建应用程序时 我想将 app release apk 文件名更改为如下所示 format appname of package name V version code yyMMdd R T explain appn
  • 居中复选框视图

    如果除了 或代替 复选框之外 您还对单选按钮感兴趣 请参阅this https stackoverflow com questions 16701806 centering views 2而是提问 尽管存在
  • Android浏览器上的Web应用程序宽度问题

    所以到目前为止我只在 Android 浏览器上遇到过这个问题 基本上我的网站几乎一直运行良好 而且我还没有在 Dolphin Opera 或 Skyfire 上看到这个问题 但偶尔当我从手机主屏幕之一上的书签重新打开 Android 浏览器
  • 如何限制firebase中的字符串长度

    我在 firebase 数据库中工作 我需要限制字符串字段的长度 我怎么做 到该字段的路径是 Col1 doc1 描述 也就是说 从集合 col1 开始 然后进入 doc1 然后对于 doc1 下的所有集合以及该集合下的所有文档 描述字段需
  • Mesibo 通话 UI 未更新

    我正在尝试更改 Mesibo Call UI 的配置 但它并没有改变 我尝试如下 MesiboCallConfig mesiboCallConfig new MesiboCallConfig mesiboCallConfig backgro
  • Android/Java 创建辅助类来创建图表

    Goal 创建用于图形生成的辅助类 背景 我有 3 个片段 每个片段收集一些传感器数据 加速度计 陀螺仪 旋转 并使用 GraphView 绘制图表 以下是其中一个片段的代码 该代码当前工作正常 public class Gyroscope
  • 如何更改对话框的默认黑色暗淡背景“颜色”(而不是暗淡量)?

    这是随机显示的图像Dialog在网上找到的 我一直在实施一个自定义Dialog 我可以处理对话框上的几乎所有内容 除了对话框本身下方的默认黑色昏暗背景之外 但在其后面的整个屏幕上 基本上我想改变它color和阿尔法值 我一直在 StackO
  • 调试 Java InterruptedException,即查找原因

    在调试Android应用程序时 有时中断异常发生并使应用程序崩溃 我已经能够在默认异常处理程序上设置断点 但调用堆栈不提供信息 at java util concurrent locks AbstractQueuedSynchronizer
  • 无法从 com.android.aaptcompiler.ParsedResource@ef79973 提取资源

    无法从 com android aaptcompiler ParsedResource ef79973 提取资源 无法从 com android aaptcompiler ParsedResource 4c95ce87 提取资源 C Use
  • 如何找到特定路线上两点之间的距离?

    我正在为我的大学开发一个 Android 应用程序 可以帮助学生跟踪大学巴士的当前位置 并为他们提供巴士到达他们的预计时间 截至目前 我获取了公交车的当前位置 通过公交车上的设备 和学生的位置 我陷入了必须找到两个 GPS 坐标之间的距离的
  • AOSP 中 android.Build.SERIAL 何时何地生成?

    我知道android Build SERIAL是在第一次设备启动时生成的 但我无法准确定位位置和时间 我正在建造AOSP Jelly Bean Android平板电脑 nosdcard 第二个问题 这个是序列号吗 really对所有人来说都
  • Android 性能:SharedPreferences 的成本

    当我的应用程序启动时 我使用分片首选项中的值填充容器类 这个想法是处理 SharedPreferences 和 PreferenceManager 一次 因为我猜它们很重 这是一个示例 SharedPreferences prefs Pre
  • 带有空格的 Firestore 文档字段名称在 Python 中与 .where() 一起使用时会返回错误

    使用 Firebase 的 Cloud Firestore 在 Python 3 7 中编写一个非常简单的程序 在程序中 我使用 where 下拉集合的一部分 然后使用 for 循环对其进行迭代 当任何带有空格的字段名称被传递到 where
  • 如何在 Android 应用程序中使用多个 Graph API 获取 Facebook Notes 项目的评论?

    我想使用 Graph API 显示 Facebook 页面的注释项目以及这些评论和点赞 为此 我使用 Facebook SDK 中的 asyncFacebookRunner 步骤是这样的 调用 asyncFacebookRunner req
  • Proguard - 找不到任何超级类

    我收到此错误 Unexpected error while performing partial evaluation Class org apache log4j chainsaw Main Method
  • 无法在 Java 中输出正确的哈希值。怎么了?

    在我的 Android 应用程序中 我有一个 SHA256 哈希值 我必须使用 RIPEMD160 消息摘要算法进一步对其进行哈希值 我可以输出任何字符串的正确 sha256 和ripemd160 哈希值 但是当我尝试使用ripemd160
  • 确定视图是否在屏幕上 - Android

    我对这个有点困惑 首先也是最重要的是 以下链接很有用 但是我提出了一些可见性问题 链接 检查视图可见性 https stackoverflow com questions 4628800 android how to check if a
  • BadPaddingException:无效的密文

    我需要一些帮助 因为这是我第一次编写加密代码 加密代码似乎工作正常 但解密会引发错误 我得到的错误是 de flexiprovider api exceptions BadPaddingException 无效的密文 in the 解密函数
  • Android UnityPlayerActivity 操作栏

    我正在构建一个 Android 应用程序 其中包含 Unity 3d 交互体验 我已将 Unity 项目导入 Android Studio 但启动时该 Activity 是全屏的 并且不显示 Android 操作栏 我怎样才能做到这一点 整
  • 如何让用户在android列表视图中选择主题?

    我有一个带有两个标签的列表视图 标题和副标题 我想要深色和浅色背景作为用户选项 标题具有 textAppearanceMedium 副标题具有 textAppearanceSmall 我希望样式 MyTheme Dark 具有白色文本 My

随机推荐

  • Qt QFileDialog - 仅具有静态函数的本机对话框?

    我试图简单地保存一个文件 但是 我需要输入一个不带后缀的文件名来自动获取默认后缀 setDefaultSuffix 会这样做 我不想为此完全失去本机保存对话框 exec 没有从 QDialog 重载 因此它完全绕过本机钩子 忽略 DontU
  • 从 vueJS 方法调用 setTimeout() 不起作用

    我试图允许用户从应用程序重置或关闭给定服务器 我现在正在开发界面 并希望向用户提供有关正在发生的事情的消息 我显示数据对象中定义的消息来指示所采取的操作 我使用 setTimeout 来切换重置 消息和重置消息 请参阅以下方法 system
  • 命令键的 jQuery 键代码

    我读过了jQuery 事件按键 按下了哪个键 https stackoverflow com questions 302122 jquery event keypress which key was pressed and 如何使用 jqu
  • python3.8中的最终注释和装饰器

    由于 Python 3 8 即将发布 我只是想知道两者之间的区别最终装饰器和最终注释 在 Python 3 8 中 Python 类型提示功能 体现为typing module https docs python org 3 library
  • Vim:如何滚动绑定光标线?

    Vim 的分割窗口视图中的两个窗口可以相互绑定滚动通过设置 set scrollbind对于他们俩来说 完成此操作后 如果我在一个窗口中向下滚动光标 其他窗口也会随之向下滚动 但是 两个窗口中的光标并未相互绑定 我用过 set cursor
  • DdlGenerator 构造函数不需要参数?

    我想对我的数据库操作进行单元测试 我发现这段代码 https gist github com nboire 2819920 但是 我收到以下错误 CityGame test info Compiling 2 Java sources to
  • 当设备令牌过期时,是否会自动从 FCM 设备组中删除? [复制]

    这个问题在这里已经有答案了 我对 Firebase Cloud Messaging 还很陌生 而且我还没有能够得到这个问题的满意答案 另外 抱歉 所有的全部停止 不幸的是我在 2017 年买了一台 MacBook 苹果决定用它的键盘进行实验
  • 如何将 dict 转换为 unicode JSON 字符串?

    使用标准库对我来说似乎不可能json模块 使用时json dumps它会自动转义所有非 ASCII 字符 然后将字符串编码为 ASCII 我可以指定它不转义非 ASCII 字符 但是当它尝试将输出转换为 ASCII 时它会崩溃 问题是 我不
  • 基于其他阵列形状的零填充阵列

    我有 K 个特征向量 它们都共享维度 n 但具有可变维度 m n x m 他们都生活在一个列表中 to be padded to be padded append np reshape np arange 9 3 3 array 0 1 2
  • 获取带有 mysqli 结果的行数组

    我需要从结果对象中获取所有行 我正在尝试构建一个包含所有行的新数组 这是我的代码 sql new mysqli config host config user config pass config db name if mysqli con
  • 在哪里可以下载 Windows Phone 开发人员工具?

    我找到了 Web 下载程序 但它们似乎对我不起作用 我如何下载 ISO 格式的最新版本或完整安装程序 我无法使用网络下载器 谢谢 尝试这个 http go microsoft com fwlink LinkId 201927 http go
  • 在 Typescript 对象中添加新属性

    我正在尝试在对象中添加新属性 但打字稿给出错误 错误 TS2339 类型 对象 上不存在属性 数量 product Object qty Number foo this product qty 1 Object是错误的注释 更改您的注释 p
  • 如何更改客户 ID 和订单 ID?

    当前 CustomerID 从 1 开始 而生成的第一个订单已OrderID 100000001 有什么方法可以改变这些字段 所以创建的第一个客户已经 顾客号码900000001并且创建的第一个订单有OrderID 900000001 通过
  • Dagger组件依赖含义

    我正在尝试 Dagger 2 我只是通过测试来了解这个框架 我有一个 ApplicationComponent 需要成为整个应用程序的单例 所以我将其定义如下 Component modules ApplicationModule clas
  • 在 SQL Server 2008 中添加列会锁定表吗?

    我想在大约 1200 万条记录的表上运行以下命令 ALTER TABLE t1 ADD c1 int NULL ALTER TABLE t2 ADD c2 bit NOT NULL DEFAULT 0 我已经在暂存中完成了它 并且时机似乎很
  • 如何在 Swift 中将十六进制数转换为 bin?

    我有字符串变量 var str 239A23F 如何将该字符串转换为二进制数 str toInt 不起作用 您可以使用NSScanner 来自基金会框架 let scanner NSScanner string str var result
  • 如何使x轴上的字体大小变量变小

    我有这段代码来创建条形图 但我想将 x 轴中的名称更改为物种名称 并且我想让字体变小 以便我可以将其全部放入 我尝试过使用cex 功能在各种组合中 但没有起作用 如果有建议我将不胜感激 count lt matrix c 16 102 11
  • Excel 2010 VBA ActiveChart.SetSourceData 失败

    我有一个 Excel VBA 应用程序 该应用程序在 Excel 2003 中运行良好 但在 Excel 2010 中失败 相关代码为 Public Sub Create Chart Dim c Dim OutputText As Stri
  • JUnit 测试时排除 @Component 类的过滤器?

    是否可以排除 Component带注释的类 我想从 JUnit 测试中排除一个特殊的类 我的项目有一个类xEventHandler注释为 Component我不希望 spring 在 junit 测试时使用这个类 我的应用程序 TestCo
  • 按 2 个键对 FireBase 中的数据进行排序

    我构建了游戏应用程序 并将记录保存在 FireBase 的实时数据库中 数据库看看 Ka8xxTgyFB8yYKH50j score 10 seconds 1325 K222xTgyFBF33FD50j score 10 seconds 4