在我的Android应用程序中,当我从后台服务更新Firebase数据库时,我遇到了非常奇怪的行为。 值得注意的是,我已将SetPersistanceEnabled设置为TRUE。 我的Java API版本是2.5.0 +。
以下是发生的情况:
我启动了一个粘性的后台服务。 此服务接收GCM并在接收这些消息时对Firebase DB进行一些更新。 当应用程序在前台运行时,更新可以正常工作,但是当应用程序被杀死时,更新不会反映到在线数据库中。
我可以确认当应用程序被杀死时,服务会重新启动自己,并且当GCM到达时,Firebase UpdateChildren的CompletionListener会被调用而没有错误,这意味着数据已经被持久化(根据控制台上打印的日志语句我可以确认这一点)。 但是为什么我看不到在线更新。 我以为因为启用了持久性,它可能会在应用再次联机时同步回来,但是不是这样,在重新启动应用程序并在前台运行后,我仍然看不到更新同步到DB中。
是否有人遇到过类似的问题。 如果我做错了什么,请告诉我。
顺便说一下,我在应用程序中没有使用goOnline或goOffline。