我的公司正在考虑将Firebase用于处理大量动态表单的特定项目。在我们开始之前,我想要删除一些Firebase服务标记。
首先,我在这里阅读了博客文章:
https://www.firebase.com/blog/2013-10-01-queries-part-one.html
https://www.firebase.com/blog/2014-01-02-queries-part-two.html
他们概述的基本查询非常自我解释,我相信对于报告查询的项目来说已经足够了,但是这只适用于Web API吗?有没有办法从REST API中搜索或从Firebase获取过滤数据,还是由开发人员来过滤一堆数据?
我的问题源于一些需要根据我们计划卸载到Firebase的一些数据显示报告的模型。
例如:
Site (Hosted internally)
activeSurveyId: *firebase survey id*
Survey (Hosted through Firebase)
siteId: *site this firebase survey belongs to*
status: "In Progress"
...
如果我只是希望对一个简单的网站进行调查,但是如果我想编制所有调查报告的状态为"进行中"有没有一种简单的方法可以从REST API中做到这一点?
我喜欢使用这款产品,因为它非常光滑。我们只需要确保它符合我们的要求,而不需要在我们的末端进行一些额外的工作来进行过滤/搜索。
答案 0 :(得分:0)
就像在Firebase(和其他noSql数据库)中查询的很多问题一样,答案是避免进行复杂查询。构建数据以减少或消除查询的需要。
Firebase有一个关于此内容的博客文章Denormalizing Your Data is Normal,我建议您阅读。
要解决您的具体问题,最好的办法是将正在进行的调查存储在与完成的根节点不同的根节点中。您的结构可能如下所示:
"surveys": {
"in-progress": {
"-JTICjjZfm8faeMo11FF": { ... data for one survey ... },
...
}
"completed": {
"-JTICdawddwMo11DWCwd": { ... data for one survey ... },
...
}
}