我已经从我的新项目从parse-server转移到firebase,但是在项目中我开始认为这是一个糟糕的主意。用于复杂查询的Firebase。一个不走?
基本上,我正在制作一个应用程序,人们可以在其中发布关于他们城镇正在进行的音乐会的信息。
我的第一个挑战是过滤事件,所以用户只能在他/她自己的城镇获得事件。我这样做是通过结构城市后的数据:
{
concerts: {
"New york": {
...,
...
},
"Chicago": {
...,
...
}
}
}
然后我想我需要另一个过滤音乐会的类型,e.g摇滚,流行,等等。所以我虽然我做了另一个重组。但是,可能需要更多5-10个过滤器,并且以很好的方式构建数据库将变得非常困难。
我虽然对多个查询,但这是不允许的:
firebase.database().ref("concerts")
.orderByChild("type").equalTo("rock")
.orderByChild("length").equalTo("2")
.orderByChild("artist").equalTo("beatles")
我想到了从服务器获取一切,然后筛选结果在客户端。然而,我看到两个问题:
- 可能会有大量不必要的数据被下载。
- 一些音乐会只会锁定某些用户(例如至少参加过10次其他音乐会的用户),并且可能存在将这些音乐会拉回到用户不能看到的音乐会的安全方面。
我想过合并过滤器来创建查询键,这样this,但有超过10的过滤器,它会变得复杂。
有没有解决方案,或者我应该忘记这个用例的firebase?
在此先感谢
“是一个会导致主观答案的问题。 Firebase非常适合一些开发人员,并且适合其他人使用。 –
与elasticsearch结合使用。 Firebase数据库是一个很好的实时数据库,但是要提供更多量身定制的数据以提供弹性,这是一条可行的途径。唯一的缺点是你最终会使用一个托管弹性搜索的服务器,这有点违反了无服务器体系结构的想法 –