gpt4 book ai didi

java - 尝试使用 Firebase 查询填充 ListView 以创建排行榜

转载 作者:行者123 更新时间:2023-12-01 21:35:00 25 4
gpt4 key购买 nike

当我使用查询时,我似乎无法填充 ListView 。我可以通过传入所有用户来很好地填充它,尽管我正在尝试创建一个排行榜,所以我需要对这些用户进行排序。

当我使用以下代码时, ListView 填充得很好,但当然没有排序:

    database = FirebaseDatabase.getInstance().getReference().child("Users");
listview = (ListView) findViewById(R.id.Leaderboard);

adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1,leaderboardlist);
listview.setAdapter(adapter);
database.addChildEventListener(new ChildEventListener()

然后我尝试使用此代码来订购它:

database = FirebaseDatabase.getInstance().getReference().child("Users");
listview = (ListView) findViewById(R.id.Leaderboard);

adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1,leaderboardlist);
listview.setAdapter(adapter);
Query queryRef = database.orderByValue().limitToFirst(10);

queryRef.addChildEventListener(new ChildEventListener()

这返回了相同的 ListView (已填充但没有顺序)。我试图按用户的得分值对用户进行排序,因此我将查询更改为:

    Query queryRef = database.child("score").orderByValue().limitToFirst(10);

尽管当我这样做时,它似乎不起作用,但 ListView 不会填充。

它不允许我导出数据库的 JSON 文件,因此只能附加树来帮助您了解 uUser 的外观。

Database tree

在 ChildListener 中我有这个:

 @Override
public void onChildAdded(@NonNull DataSnapshot dataSnapshot, @Nullable String s)

{

String user = dataSnapshot.getValue(User.class).toString();

leaderboardlist.add(user);

adapter.notifyDataSetChanged();
}

所以我不太确定我哪里出了问题或者如何解决这个问题

以防万一有人想知道我最终解决了这个问题,

正确的查询方式不是按值排序,而是按子排序:

例如:代替

Query queryRef = database.child("score").orderByValue().limitToFirst(10);

应该:


Query queryRef = database.orderByChild("score").limitToFirst(10);

我现在的问题是它现在对它们进行反向排序,

我试图将其更改为

limitToFirst(10);

limitToLast(10):

但这并没有改变什么?

最佳答案

正确的查询方式不是按值排序,而是按子排序:例如:代替

Query queryRef = database.child("score").orderByValue().limitToFirst(10);

应该:

Query queryRef = database.orderByChild("score").limitToFirst(10);

为了确保您以正确的方式订购它,您必须颠倒顺序,而不是:

limitToFirst(10);

应该是:

limitToLast(10):

关于java - 尝试使用 Firebase 查询填充 ListView 以创建排行榜,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58804970/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com