2016-08-26 334 views
1

這是我當前的Firebase數據設計(數據僅僅是「events」參考中的jsons列表)。字段時間戳,操作和持續時間是固定的,並且稍後可能會添加更多可選字段。使用時間戳查詢Firebase數據

backend-7f34e 
    events 
     -KQ30Lc6lasdfasdfAi1URf 
      action: "Get ready" 
      duration: 100 
      timestamp: 1472167504389 

     -KQ30MM8Fgasdf_o10TW 
      action: "Run" 
      duration: 1890 
      timestamp: 1472167507411 

我需要能夠從時間戳範圍[開始,結束]檢索數據。我需要使用時間戳作爲密鑰嗎?什麼是更好的方式來構建數據?

+2

你可以用'orderByChild查詢當前的結構( 「時間戳」)'。請參閱https://firebase.google.com/docs/database/android/retrieve-data#sorting_and_filtering_data(適用於Android)或您使用的techology的文檔。 –

回答

1

使用OrderByChild與startAt和ENDAT結合

DatabaseReference databaseReference = FirebaseDatabase.getInstance().getReference(); 
DatabaseReference eventsReference = databaseReference.child("events"); 

Query query = eventsReference.orderByChild("timestamp").startAt(1472167504389); 
query.addValueEventListener(new ValueEventListener)..... 
.... 

StartAt需要作爲參數,所以相應地組織你的數據。

更多信息 - https://www.firebase.com/docs/web/api/query/startat.html