如果您的firebase结构不是太复杂,您还可以创建一个定义类似方法的接口

void addData(Data data);

Data getData(long id);

void editData(Data data, long id);

void deleteData(long id);

然后创建两个实现该界面的类,一个使用Firebase,另一个使用SQLite.

DatabaseImplementation

FirebaseImplementation

在Firebase实现中,您可以像正常一样发布数据,并将一个新节点发布到root / requestUpdate / userId / push /之类的内容,push将包含有关您请求更新的位置以及deviceId发布它的信息.

然后将ValueEventListener绑定到所提到的节点,如果它获得一个新子节点,请查看deviceId是否相同.如果不是,请使用您获得的信息使用FirebaseImplementation getData,然后使用DatabaseImplementation来添加数据.

这将确保无论何时进行更改,任何其他登录的客户端都将知道更新其firebase.如果客户端不在线,则下次他将在线时,他会在ValueEventListener附加时触发它.确保循环遍历所有请求的更新,以确保所有更新.还存储您在本地数据库上完成的任何更新的推送键,这样您最终不会更新多次.

基本上,firebase将始终是最新的,并存储用户对所有客户端监听的单独节点所做的任何更改.

显然,此解决方案仍然存在许多您需要解决的问题,例如确定何时删除requestUpdate节点.逻辑上每个用户同步后但你如何确定? …

至于第一次登录,你需要编写一个populateDatabaseFromFirebase()方法,它将执行大量的getDatas和addDatas.你将如何做到这将取决于你的数据库的外观.然后,您将存储用户已使用SharedPreferences和firebase UID登录的用户.

总而言之,只有你的火力基地非常平坦,这才有效.如果你有一个复杂的数据库,那么一切都变得更加复杂和纠缠,然后它可能值得查看外部库.

多个android客户端使用的数据库,android – 将Firebase数据库与本地数据库一起使用...相关推荐

  1. 开源android客户端_4个开源Android电子邮件客户端

    开源android客户端 即使年轻一代的成员试图将电子邮件作为"老年人的交流"来掩埋,但现实情况是,电子邮件离死刑不远了. 尽管协作工具 ,社交媒体和短信很重要,但它们还不能替代电 ...

  2. android客户端测试用例,云电话Android客户端测试用例结果.xls

    云电话测试用例结果备注 用例编号 主模块 次模块 测试功能点 前置条件 输入或操作步骤 预期输出或预期结果 结果 网络检测 检测时机 每次客户端启动时(引导页后),查看是否会检测用户当前所使用的网络类 ...

  3. 百度新闻android客户端,百度新闻进驻Android版客户端 全球最大移动中文新闻平台出炉...

    网络信息浩如烟渺,新闻更新更是以秒计算.如何才能一网打尽新闻资讯,并从中迅速找到对自己有价值的资讯信息?近日,随着全球最大的中文新闻平台--百度新闻正式推出Android版客户端,Android手机用 ...

  4. android 客户端倍速播放,Android MediaPlayer 在 6.0 以上版本使用倍速播放功能说明

    public class FloatingPopupWindow implementsSurfaceHolder.Callback {//弹窗宽度 private static final int P ...

  5. python 简单数据库_Python打造一个简单的本地数据库

    先上效果图 用某特殊方法存到云端,想法是用网上的免费静态文件来储存我的数据库数据 main.py文件 # -*- coding:utf-8 -*- from HUAISQL import * whil ...

  6. mac mysql创建本地数据库_【mac】配置本地数据库

    1.[安装数据库] brew 安装mysql -- brew install mysql 安装成功后在命令行敲入 which mysql 查看安装路径 2.[配置数据库] 如果直接打mysql会报错, ...

  7. 软件无法连接oracle数据库,全面解析Oracle无法连接本地数据库问题

    来源: 赛迪网 作者: 若水 2008-04-22/14:04 Error:ORA-01033:ORACLE initialization or shutdown in progress 仔细观察服务 ...

  8. android客户端设计,Android客户端设计.ppt

    Android客户端设计 图16 .android.score包下各文件说明 .android.score包存放所有的功能界面,处理各种业务逻辑,是"豹考通"客户端的核心,该包下所 ...

  9. 高仿人人android梦想版终极源码发送,人人Android客户端梦想版发布

    人人网梦想版for Android 5.0.1下载(人人网Android客户端) 人人网今天发布Android客户端"梦想版",新版更新的"私信"功能与微信等聊 ...

  10. Android 客户端与服务端的数据交互问题

    Android客户端是如何与服务端的数据进行交互的呢? 一般就是客户端向服务端发送请求,服务端对数据进行相关处理,返回json数据返回给客户端,客户端再进行相关操作. 说明:主要是用登录功能来进行详解 ...

最新文章

  1. python使用方法-六、python 方法的使用
  2. 错误:wasm streaming compile failed: CompileError: AsyncCompile: Wasm decoding failed
  3. CentOS7中怎样安装JDK与配置环境变量
  4. mysql数据类型优化
  5. 2021牛客暑期多校训练营7 J-xay loves Floyd(最短路+bitset优化集合交)
  6. “约见”面试官系列之常见面试题之第九十三篇之vue获取数据在哪个周期函数(建议收藏)
  7. BaseColumns类的作用
  8. python刘卫国实验题_MATLAB 程序设计与应用(刘卫国版)习题答案3-4
  9. 全国院线总票房破 50 亿!影院复工后,哪些电影最受欢迎?
  10. nodemon运行 提示错误:无法加载文件 C:\Users\gxf\AppData\Roaming\npm\nodemon.ps1,因为在此系统上禁止运行脚本。...
  11. Xeen的Source Safe 备份
  12. AHP(层次分析法)的全面讲解及python实现
  13. 2021网安保研之路-----中科院信工所
  14. 腾创秒会达MHD-CHD40A 20倍光学变焦摄像机
  15. 游戏反外挂的难点和破局之路
  16. 26、流程引擎API
  17. 影响计算机网络性能的原因,计算机网络传输效率分析论文
  18. 文件上传漏洞靶场upload-labs学习(pass1-pass5)
  19. 通达信客户端程序化下单
  20. java dispo lock_java

热门文章

  1. AtCoder Regular Contest 088
  2. React Native 触摸事件处理详解
  3. 在doPost,service等方法里配置字符编码过滤器,防止出现中文乱码
  4. redis-实现排行榜
  5. LANMP架构----------------------mysql(2)
  6. Android 判定手机是否root
  7. apache php 搭建 nagios 平台
  8. 新产品、新团队、新技术
  9. 12.TCP/IP 详解卷1 --- 广播和多播
  10. 9. Browser 对象 - Location 对象