私は新しいプロジェクトのためにparse-serverからfirebaseに移りましたが、プロジェクトの中で私がそれが悪い考えであると思っていた点に達しました。複雑なクエリのFirebase。いいえ?
基本的には、自分の町で行われているコンサートに関する情報を投稿できるアプリを作っています。
私の最初の課題は、イベントをフィルタリングすることでした。そのため、ユーザーは自分の町でイベントを取得するだけでした。私は都市の後の構造によってデータをこれをしなかった:
{
concerts: {
"New york": {
...,
...
},
"Chicago": {
...,
...
}
}
}
は、それから私は、私は別の再構築をしたのに、私は私が別のコンサートのタイプのフィルタ、例えばロック、ポップ、などが必要に把握します。しかし、おそらく5〜10個のフィルタが必要になり、データベースをうまく構築するのが非常に難しくなります。
Iに関する複数のクエリしかし、これは許されませんでした。
firebase.database().ref("concerts")
.orderByChild("type").equalTo("rock")
.orderByChild("length").equalTo("2")
.orderByChild("artist").equalTo("beatles")
私は、サーバーからすべてをフェッチについて考え、その後、クライアントに結果をフィルタリングします。しかし、これには2つの問題があります。
- 不必要に多くのデータがダウンロードされている可能性があります。
- 一部のコンサートは、特定のユーザー(たとえば、他のコンサートに少なくとも10回以上行ったユーザー)のみにロックされます。また、これらのコンサートは、視聴できないユーザーに持ち帰ってしまう可能性があります。
私はこのthisのように、クエリのキーを作成するためにフィルタを組み合わせることを考えたが、10以上のフィルターと、それは複雑になります。
この解決策はありますか、この使用例ではfirebaseについて忘れてはいけませんか?
ありがとうございます。
"Firebaseは私にとっては良いですか?"主観的な答えにつながる質問です。 Firebaseは、いくつかの開発者には最適で、他の開発者にとってはぴったりです。 –
elasticsearchと組み合わせて使用してください。 Firebaseデータベースは優れたリアルタイムのデータベースですが、弾力的なデータを提供するためのより多くのデータのためには、行く方法です。唯一の欠点は、serverlessアーキテクチャのアイデアを少し破る弾性検索を使用するサーバーを使用することになります。 –