2017-01-01 6 views
3

私は、タイムスタンプを持つFireBaseバックエンドを持っています。これらのノードの多くは、プッシュされたオブジェクトです。ServerValue.TIMESTAMPに基づいてFirebaseを照会します

DB set up

各ノードはServerValue.TIMESTAMPで設定されたタイムスタンプを有しています。データモデルクラス設定サーバ時間の

private HashMap<String, Object> timestampCreated; 

//set time stamp in constructor when new obj is created 
public DataModel(...){ 
// TIME STAMP 
    HashMap<String, Object> timestampCreatedObj = new HashMap<String, Object>(); 
    timestampCreatedObj.put("date", ServerValue.TIMESTAMP); 
    this.timestampCreated = timestampCreatedObj; 
} 

//getting timestamp 

    public HashMap<String, Object> getTimestampCreated(){ 
    return timestampCreated; 
} 

@Exclude 
public long getTimestampCreatedLong(){ 
    return (long)timestampCreated.get("date"); 
} 

上記のすべてのザ・DBに挿入するために正常に動作し、私は時間を取得することができます。

別のクラスFirebaseListAdapterにクエリを設定したい クエリを設定すると、過去5日間のアイテムを表示することができます。

long daysInpast= new Date().getTime() - TimeUnit.MILLISECONDS.convert(5, TimeUnit.DAYS); 

は、その後、私はちょうどDB参照私のリストを渡して、クエリせずに私のFirebaseListAdapterを使用している場合は、私は、私のリストが空に戻っているのか分からない

 Query queryDays= mDatabaseQuery.child("timestampCreated").orderByChild("date").endAt(daysInpast); 

final FirebaseListAdapter<myData> adapterQuery = new FirebaseListAdapter<myData> 
       (getActivity(), myData.class, R.layout.list_item, queryDays) {//do stuff} 

その私のクエリのクエリを設定しました期待どおりの値を設定します。私はそのデータがどのようにレイアウトされているのだろうか?彼は実際に私の時のタップがサブノードにあるということはそれが問題なのでしょうか?

私はまた

Query queryDays= mDatabaseQuery.orderByChild("date").endAt(daysInpast); 

を使用してみましたが、何のベイル

任意のヘルプは

答えて

2

を高く評価していないあなたは返して欲しい子ども上記の場所でクエリを実行する必要があり、データベースのルートになっているようです(テキストをぼかして写真を投稿したり、実際のJSONを次回以降のテキストとして投稿しないでください)。

確かに、あなたのデータベースのルートの下のレベルが必要な場合は、あなたが日付を照会することができますありがとう

DatabaseReference root = FirebaseDatabase.getInstance().getReference(); 
Query query = root.orderByChild("timestampCreated/date").endAt(daysInPast); 
+0

、これは今働いて、私は必要なもので、画像についての謝罪は、JSONを掲載します将来は。 – RoRo88

関連する問題