2017-12-29 53 views
2

初心者の方はここをクリックして、さまざまなフィールド制限で範囲フィルタを克服する方法に苦労しています。「異なるフィールドの範囲フィルタ」制限の回避策?

ユースケースは、カレンダーソリューションのイベント/イベントデータの格納と取得です。

カレンダービューは、週、月など異なる場合があります。つまり、特定のビューごとに定義された開始時刻と終了時刻が設定されています。

ストアドイベントには、開始タイムスタンプと終了タイムスタンプがあります。

開始時刻と終了時刻、または開始時刻と終了時刻のすべてのイベントを照会する必要があります。

これをSQLバックエンドで実装するのは簡単ですが、ファイアストアでは、異なるフィールドの範囲フィルタではこれが不可能なようです。 これはどのように解決できますか?あるいは、ファイヤーストアでこの種の機能をサポートする計画があれば?

BR ステファン私が最初にそれはこの制限が存在する理由を最初に理解するために役立ったこの問題が発生した

答えて

0

。はい、これはSQLデータベースでは簡単かもしれませんが、SQLデータベースはFirestoreのようにスケールされません。 FirestoreはGoogle Big Tableによってサポートされている可能性があります。because of the way that indexing worksは、異なるプロパティで範囲フィルタを使用すると縮尺されません。本質的に、Firestoreは、あなたのアプリケーションの規模が変わったときにあなたに襲われるようなことをさせるつもりはありません。

2つのクエリを実行し、その結果を1つのセットにまとめることをお勧めします。ここにいくつかのsudoコードがあります:

let eventsStartingIn2017 = calendar_events.where("start_date", ">=", "1/1/2017").where("start_date", "<=", "31/12/2017") 
let eventsEndingIn2017 = calendar_events.where("end_date", ">=", "1/1/2017").where("end_date", "<=", "31/12/2017") 

let 2017Events = new Set(); 
2017Events.add(eventsStartingIn2017); 
2017Events.add(eventsEndingIn2017);