在 flutter 中查找 n 个最近的位置:本地数据库(Sqlite)结合 Cloud Firestore 与 Firebase 实时数据库
Find n nearest locations in flutter: local database (Sqlite) in combination with Cloud Firestore vs Firebase Realtime Database
我现在正在研究以下主题:
- 大约 8000 stores/objects(uniqueID, name, address, latitude, longitude, geohash, amount of productX, amount of productY.)
- 以后还会有新的店铺,也会有一些店铺被删除
- 我打算为每个数据添加一个版本属性:例如,我从版本 1 开始。如果我收到更新或新商店,那么它将有 version2
- 不需要接收实时更改。此数据每个月只会更改几次
- 具有以下功能的 Flutter 应用:在此位置找到 n 家商店
因为数据不经常更改我计划在每个构建中放置一个更新的本地 sqlite 数据库
我将使用实时数据库或 Firestore 在我的应用程序中接收更新的数据,以避免仅因为数据库已更改而发布新版本
Firestore:我将只向我的文档添加一个新属性,我将请求所有比我的本地数据库版本更新的数据,我还将有一个包含所有已删除项目的集合
实时数据库:这里我会有这样的东西
-updates
version1
newData: List of unique IDs
deletedData: List of unique IDs
我在 firestore 上阅读了很多关于地理查询的内容,我还找到了一个可以在服务器端执行此过滤的有效 flutter 插件,但是因为我的数据没有经常更改,所以我对最佳方法感到非常困惑。
问题:
- 我的方法是个好主意还是我应该忘记本地 sqlite 数据库而只使用 Firebase/Firestore?
- 如果我将使用本地数据库并且只会观察来自后端的更新,在定价等方面我应该使用哪些服务? (优势 Firestore:如果我使用 Firestore,我可以通过使用 flutter 插件轻松切换到它,而无需考虑我的本地数据库)
如果您只有几千个对象,而且数据几乎没有变化,我通常会考虑在设备本地查询数据。您可以非常快速地遍历 8,000 个项目,以根据用户位置检查它们的 lat/lon。
然后您可以使用 Firebase Storage 甚至 Firebase Hosting 之类的东西将更新的数据集分发给用户。当然,您也可以为此使用 Firestore 或实时数据库,但如果您不使用它们的查询或实时功能,则有更便宜的选项来分发静态文件。
我现在正在研究以下主题:
- 大约 8000 stores/objects(uniqueID, name, address, latitude, longitude, geohash, amount of productX, amount of productY.)
- 以后还会有新的店铺,也会有一些店铺被删除
- 我打算为每个数据添加一个版本属性:例如,我从版本 1 开始。如果我收到更新或新商店,那么它将有 version2
- 不需要接收实时更改。此数据每个月只会更改几次
- 具有以下功能的 Flutter 应用:在此位置找到 n 家商店
因为数据不经常更改我计划在每个构建中放置一个更新的本地 sqlite 数据库
我将使用实时数据库或 Firestore 在我的应用程序中接收更新的数据,以避免仅因为数据库已更改而发布新版本
Firestore:我将只向我的文档添加一个新属性,我将请求所有比我的本地数据库版本更新的数据,我还将有一个包含所有已删除项目的集合
实时数据库:这里我会有这样的东西
-updates version1 newData: List of unique IDs deletedData: List of unique IDs
我在 firestore 上阅读了很多关于地理查询的内容,我还找到了一个可以在服务器端执行此过滤的有效 flutter 插件,但是因为我的数据没有经常更改,所以我对最佳方法感到非常困惑。
问题:
- 我的方法是个好主意还是我应该忘记本地 sqlite 数据库而只使用 Firebase/Firestore?
- 如果我将使用本地数据库并且只会观察来自后端的更新,在定价等方面我应该使用哪些服务? (优势 Firestore:如果我使用 Firestore,我可以通过使用 flutter 插件轻松切换到它,而无需考虑我的本地数据库)
如果您只有几千个对象,而且数据几乎没有变化,我通常会考虑在设备本地查询数据。您可以非常快速地遍历 8,000 个项目,以根据用户位置检查它们的 lat/lon。
然后您可以使用 Firebase Storage 甚至 Firebase Hosting 之类的东西将更新的数据集分发给用户。当然,您也可以为此使用 Firestore 或实时数据库,但如果您不使用它们的查询或实时功能,则有更便宜的选项来分发静态文件。