2017-09-28 26 views
0

我想通過用戶的唯一ID查詢事件,但它不會返回任何東西。這裏是我的查詢代碼:Android的FIrebase-按價值查詢不起作用

Query events = mDatabaseEvents.orderByValue().equalTo("user1"); 

,這裏是我的火力地堡的數據庫結構:

events: { 
    -event1: { 
    1: user1, 
    2: user2, 
    3: user3, 
}, 
    -event2: { 
    1: user4, 
    2: user5, 
    3: user1, 
}, 

我認爲這是不工作,因爲數據是通過一個HashMap設定,因此「用戶1」未必是總是在每個事件的同一個地方。我該如何解決這個問題?謝謝

+0

請分享您的代碼,你試過到目前爲止,並發表您的火力數據庫結構體。 –

+0

您當前的代碼實際上並沒有對Firebase數據庫執行任何操作。它僅僅定義了一個查詢。如果您想要從數據庫中檢索匹配的項目,則必須[附加偵聽器](https://firebase.google.com/docs/database/android/lists-of-data#child-events)。 –

回答

0

您需要添加一個「addValueEventListener」來實際獲取數據。這裏是「orderByKey」的一個例子,會有一點變化我想:

Query query = locationComment.orderByKey(); 
query.addValueEventListener(new ValueEventListener() { 
    @Override 
    public void onDataChange(DataSnapshot dataSnapshot) { 
     if (dataSnapshot.getValue() == null) { 
      return; 
     } 
     data.clear(); 
     for (DataSnapshot child : dataSnapshot.getChildren()) { 
      ... 
     } 
     adapter.notifyDataSetChanged(); 
    } 

您可以在這裏看到更多的信息:https://stackoverflow.com/a/42430304/5309996

+0

我正在使用FirebaseRecyclerAdapter的查詢。我會怎麼做呢? – Spotz