【问题标题】:Retriving data from firebase ordeybyvalue() without child folder name通过没有子文件夹名称的 value() 从 firebase order 中检索数据
【发布时间】:2016-04-04 16:23:42
【问题描述】:

我可以使用以下代码从 fire-base 检索数据

Firebase ref=mFirebaseRef.child("users");ref.addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot snapshot) {
                for (DataSnapshot Snapshot: snapshot.getChildren()) {
                    String tts=Snapshot.getKey();
                    getScore getscore = snapshot.child(tts).child("gamedata").getValue(getScore.class);
                    System.out.println(getscore.getScore());}}

            @Override
            public void onCancelled(FirebaseError firebaseError) {
                System.out.println("The read failed: " + firebaseError.getMessage());
            }
        });

我的文件树是这样的

users  >  213654518999134  > gamedata > highscore=90    
users  >  213654518999142  > gamedata > highscore=176    
users  >  213545189239136  > gamedata > highscore=432    
users  >  213654658999133  > gamedata > highscore=754

“用户”之后的第二个数字是用户 ID。我该如何使用 orderbyvalue 呢?

无法使用基于火的教程中提到的以下示例,因为我在中间有一个用户 ID 文件夹

Firebase scoresRef = new Firebase("https://dinosaur-facts.firebaseio.com/scores");
Query queryRef = scoresRef.orderByValue();
queryRef.addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(DataSnapshot snapshot, String previousChildKey) {
  System.out.println("The " + snapshot.getKey() + " dinosaur's score is " + snapshot.getValue());
}
// ....    });

【问题讨论】:

    标签: android-studio firebase firebase-realtime-database


    【解决方案1】:

    您正在寻找orderByKey()

    Firebase users = mFirebaseRef.child("users").orderByKey();
    users.addValueEventListener(new ValueEventListener() {
    

    更新:您似乎希望按高分排序,在这种情况下是:

    Firebase users = mFirebaseRef.child("users").orderByChild('gamedata/highscore');
    users.addValueEventListener(new ValueEventListener() {
    

    看到这个blog post where the feature was introduced。别忘了add .indexOn: ['gamedata/highscore'] to the security rules of users

    【讨论】:

    • 我想按高分订购。我认为您的代码正在使用用户 ID 进行排序
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-06-19
    • 1970-01-01
    • 2016-06-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多