从Firebase

时间:2018-03-21 17:19:00

标签: java firebase firebase-realtime-database

我有一个从Firebase数据库返回的数据集,数据集内部是团队信息,其中包含玩过的游戏数量,积分,犯规等等......

团队 - 积分

Chelsa 10

曼彻斯特6

利物浦18

马德里22

等等......

我需要按点数从上到下排序,所以使用上面的例子,马德里将是第一,然后是利物浦,然后是切尔西,最后是曼彻斯特。

我的问题是; Firebase允许我这样做吗?我尝试过使用;

OrderByChild("points");

但这不按点(asc或desc)排序

或者我应该使用sort来订购Java arrayList吗?

2 个答案:

答案 0 :(得分:0)

根据文档中的说明,Firebase中没有降序:

  

orderByChild()

     

接下来是具有数值的儿童,按升序排序。如果多个子节点具有指定子节点的相同数值,则按键排序。

然后你可以这样做:

orderByChild("points").limitToFirst(20);

将为您提供前20个,或者您可以使用limitToLast(20);

更多信息:

https://firebase.google.com/docs/database/android/lists-of-data

答案 1 :(得分:0)

Firebase数据库仅提供升序排序。所以你必须得到这些数据并反转数据。

string connString =
            String.Format(
                "Server={0}; User Id={1}; Database={2}; Port={3}; Password={4}; SSL Mode=Prefer; Trust Server Certificate=true",
                parameter.Host,
                parameter.User,
                parameter.DBname,
                parameter.Port,
                parameter.Password);
            NpgsqlConnection conn = new NpgsqlConnection(connString);
            try
            {
                conn.Open();
                if(conn.State == System.Data.ConnectionState.Open)
                {

                    conn.Close();
                }

            }
            catch (Exception ex)
{}