我正在开发一个应用程序,该应用程序将使用用户的位置并使用URL中的邮政编码执行Web请求。这相当快,通常需要1-3秒。我即将发布应用程序,但阅读使用条款,并且无法在我的应用程序中使用他们的服务。我已经下载了一个77k行的邮政编码电子表格,将其转换为JSON,并将其上传到Firebase。我目前正在我的应用程序中查询Firebase以搜索邮政编码,但现在大约需要10-15秒。我的代码如下:
func firebaseSearch(zipCode: String) {
let conditionRef = FIRDatabase.database().reference().child("locations")
let query = conditionRef.queryOrderedByChild("zip").queryEqualToValue(zipCode)
query.observeEventType(.Value, withBlock: { snapshot in
for child in snapshot.children {
print(child.value["state"])
}
})
}
我的firebase结构如下:
我试图考虑如何构建Firebase以提高效率,例如让状态成为父级,内部有子条目。我想将所有条目上传为邮政编码;但是,我的电子表格中有太多重复的代码,我知道firebase不允许重复。有没有更有效的方法来查询firebase?如果我从第一个邮政编码开始输入条目号(当前从1开始到77k开始),然后我从邮政编码中查询+/-值,然后过滤这些结果怎么办?我唯一担心的是,查看最后一个邮政编码,条目号码与实际邮政编码相差约20k。我感谢任何提示/建议,谢谢!
答案 0 :(得分:0)
Firebase建议避免嵌套数据,据我所知,您的结构良好,因为当您在某个位置获取数据时,它也会检索其所有子节点。如何在应用中显示数据?
您是否可以先使用分页查询25个项目,然后加载下一个25项,依此类推?
query.limitToLast(25).observeEventType(.Value, withBlock: { snapshot in ...