2017-06-20 108 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

很高興聽到你解決了它。 –