【问题标题】:How to get highest 10 scores with RestClient Unity from Firebase Realtime Database如何使用来自 Firebase 实时数据库的 RestClient Unity 获得最高 10 分
【发布时间】:2021-05-12 21:27:08
【问题描述】:

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

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

对于第二种方式,我可以通过一些 json 解析器包获取所有用户的信息并解析它们并获得最高分。但如果我的数据库变得更大,我想我会遇到问题。我需要一种像“orderby”这样的方式。你知道有什么方法可以在我的 restclient 代码中实现“orderby”方法吗?

【问题讨论】:

    标签: firebase rest unity3d firebase-realtime-database firebase-authentication


    【解决方案1】:

    阅读firebase docs:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-01-11
      • 2019-03-28
      • 1970-01-01
      • 2020-12-12
      • 1970-01-01
      • 1970-01-01
      • 2021-11-01
      相关资源
      最近更新 更多