在Firebase上更新服务器项时如何在android上更新SQLite数据库

时间:2018-09-30 02:01:41

标签: android firebase

我是这个android / firebase的新手。在我的应用程序中,我的firebase实时数据库在recyclerview中同步了所有可用的电影,因此用户可以将电影添加到他的收藏夹列表中,该列表将被添加到用户手机上的SQLite数据库中。我想要实现的是,当电影在Firebase数据库上更新时,它也可以在用户的​​SQLite数据库上进行更新,而无需打开应用程序或已经打开应用程序,因为当用户当前正在浏览电影时,这真的很容易实现。应用程式。我想要的是在APP关闭时更新他的收藏夹列表,并向他发送每次更改的通知。例如,“电影《毒液》已推迟到10月12日”

谢谢

1 个答案:

答案 0 :(得分:1)

首先,在您的情况下,使用firebase和SQLite是多余的。相反,您应该(最好)使用Firebase离线缓存功能,并考虑“如何保持Firebase离线数据更新?”。

不可能在不打开应用程序的情况下更新数据库。但是,如果您的应用至少打开一次,则有很多可能性,其中有些是:

  1. 您可以获取FCM令牌并将其保存到后端数据库(或Firebase数据库的某些部分)中,然后可以触发来自云功能(可以侦听数据库更改)的云消息,这又会触发您的处理程序的客户端实现,您可以在其中启动服务或安排作业以将客户端数据库同步到远程数据库。

  2. 您可以在客户端安排定期(例如,每6个小时)的作业,这些作业会继续将远程数据库同步到客户端数据库。

  3. 您还可以在通知正常时启动长期运行的服务,这样就可以设置Firebase侦听器以同步数据。

但是,如果您的应用程序是一种音乐播放器,那么这一切都取决于您的应用程序设计实现,尽管这是效率最低的方法,但您可能可以实现第三种选择。 第一个选项在编程上是最优化的,但最不可靠,因为许多android设备(主要是小米)在客户端优化了云消息传递触发器,因此许多时间未及时调用应用处理程序。第二个选择是骇客,但最合适。