如何从Firebase实时数据库中获得RestClient Unity的最高10分



我想从firebase中获得最高的10分。当我搜索stackoverflow时,我在这里找到了一些答案Firebase检索了最高的100分,但我无法想象如何用REST API实现它们。我的代码是这样的。我将请求发送到端点并得到响应。

RestClient.Get<User>(databaseURL + getScoreText.text + ".json").Then(response =>
{
user = response;
UpdateScore();
});

同样对于第二种方式,我可以通过一些json解析器包获取所有用户的信息,并对其进行解析,从而获得最高分数。但如果我的数据库变大,我想我会遇到问题。我需要一种像";orderby";。你知道有什么方法可以实现";orderby";方法转换为我的restclient代码?

阅读firebase文档:

过滤后的数据无序返回:使用REST API时,过滤后的结果以未定义的顺序返回,因为JSON解释器不强制执行任何排序。如果数据的顺序很重要,您应该在从Firebase返回结果后对应用程序中的结果进行排序。

缩放似乎是实时数据库的一个真正限制。如果你想切换,Firestore可以很容易地做到这一点。

如果你坚持使用实时数据库,我会保存一个单独的数据库引用,只有包含前10名的分数。因此,当玩家获得新的分数时,他们只会在高于第10个最高分数的情况下将其上传到该参考。这意味着你只会有一个包含10分或更少高分的DB参考,缩放不会是问题。我对实时数据库不是很熟悉,但我相信你可以编写一个安全到规则,以安全、服务器权威的方式强制执行,至少是一个云功能。

最新更新