2017-06-20 84 views
0

我想查询该orderByValue它总是返回null 但是,当我删除.orderByValue数据正常加载。请帮忙查询firebase数据库得到null

DatabaseReference mDatabase = FirebaseDatabase.getInstance().getReference(); 
    mDatabase.child("newfeed").child(FirebaseRef.mAuth.getCurrentUser().getUid()).orderByValue().limitToFirst(10).addListenerForSingleValueEvent(new ValueEventListener() { 
     @Override 
     public void onDataChange(DataSnapshot dataSnapshot) { 
      if(dataSnapshot.exists()){ 
       for (DataSnapshot data : dataSnapshot.getChildren()) { 
        lastRating = data.getValue(Double.class); 
        loadData(data.getKey()); 
        Log.d("Key ", data.getKey()); 
       } 
      } 
      else{ 
       mProgressBar.setVisibility(RecyclerView.GONE); 
       mProgressBarTop.setVisibility(RecyclerView.GONE); 

      } 
     } 
     @Override public void onCancelled(DatabaseError databaseError) { 
      mProgressBar.setVisibility(RecyclerView.GONE); 
     } 
    }); 
} 

这里是我的JSON的例子。

"newfeed" : { 
"7gE2qiqoblSHDHubiEW0IzrhzIQ2" : { 
    "-Kn090eIxMH338xIwA8J" : 69259.23018812927, 
    "-Kn092jf25h2Qdmk--RX" : 69268.71984827428, 
    "-Kn093LPOBCCE1-Ygx6t" : 69270.82899176712, 
    "-Kn093P2PE2rIml4XyKI" : 121518.05765189118, 
    "-Kn09lD0cGUhRQPbvJtS" : 69394.93008559482, 
    "-Kn0BYI-7IQzkCmBH8gN" : 69892.8262113143, 
    "-Kn4UkNCe1rhpiJ_Rrew" : 3133576.6418433865 
} 
+0

你已经在你的问题中包含了JSON树的图片。请用实际的JSON替换为文本,您可以通过单击[您的Firebase数据库控制台](https://console.firebase.google.com/project/_/database/data/)中的导出JSON链接轻松获取该文本。 。将JSON作为文本可以搜索,使我们能够轻松使用它来测试您的实际数据,并将其用于我们的答案中,并且通常只是一件好事。 –

+0

@FrankvanPuffelen对不起,刚添加。 – LIPONEF

+0

如果使用'addValueEventListener',它有什么区别吗?查看https://stackoverflow.com/questions/34486417/firebase-offline-capabilities-and-addlistenerforsinglevalueevent了解addListenerForSingleValueEvent行为的一些细节(虽然不确定为什么只有在使用orderByValue()时才会这样) 。正如那篇文章所描述的,当使用'addListenerForSingleValueEvent'时可能需要调用'keepSynced(true)' –

回答

0

我真的不知道你在说什么,这就是为什么我跑这个代码自己:

ref.orderByValue().limitToFirst(10).addListenerForSingleValueEvent(new ValueEventListener() { 
    @Override 
    public void onDataChange(DataSnapshot dataSnapshot) { 
     for (DataSnapshot data : dataSnapshot.getChildren()) { 
      Log.d("Key ", data.getKey()+": "+data.getValue()); 
     } 
    } 
    @Override public void onCancelled(DatabaseError databaseError) { 
     throw databaseError.toException(); 
    } 
}); 

它打印:

d /键:-Kn090eIxMH338xIwA8J :69259.23018812927

d /键:-Kn092jf25h2Qdmk - RX:69268.71984827428

d /键:-Kn093LPOBCCE1-Ygx6t:69270.82899176712

d /键:-Kn09lD0cGUhRQPbvJtS:69394.93008559482

d /键:-Kn0BYI-7IQzkCmBH8gN:69892.8262113143

d /键:-Kn093P2PE2rIml4XyKI:121518.05765189118

d /键:-Kn4UkNCe1rhpiJ_Rrew:3133576.6418433865

从快速扫描,看起来像正确的顺序给我。

+0

谢谢@Frank也许这是我的连接问题。 – LIPONEF

+0

很高兴听到你解决了它。 –