当我在Android应用程序中使用从后台服务更新Firebase数据库时,我看到了一种非常奇怪的行为.仅供参考我将SetPersistanceEnabled设置为TRUE.我的Java API版本是2.5.0+.
以下是发生的事情:
我有一个以STICKY开头的后台服务.此服务接收GCM,收到这些消息后,我会对Firebase数据库进行一些更新.当应用程序在前台运行时,更新工作完全正常但是一旦应用程序被杀死,更新就不会在线反映回DB.
我可以确认当应用程序被杀死时服务重新启动,并且当GCM到达时Firebase UpdateChildren的CompletionListener被调用而没有错误,这意味着数据已被持久化(我可以根据在控制台上打印的日志语句来确认这一点).但后来为什么我没有在网上看到更新.我认为因为持久性已启用它可能会在应用程序再次联机时将其同步回来但是在重新启动应用程序并在前台运行它后仍然没有我仍然看不到更新已同步到数据库.
有没有人遇到过类似的问题.如果我做错了,请告诉我.
顺便说一下,我没有在应用程序的任何地方使用goOnline或goOffline.
我在 Azure Active Directory -> 应用程序注册下注册了一个 API 应用程序。此 API 应用程序公开了可由组织内的客户端访问的端点。客户端不是用户,而是将访问端点的后台服务。
当我尝试授予客户端访问 API 应用程序的 API 权限时,我看到应用程序权限被禁用/变灰。设置 API 权限时是否需要做一些不同的事情。
请看附图。
有没有人遇到过这个问题,或者我在做什么傻事。我们组织中的 Azure 管理员告诉我他无法帮助解决这个问题,因为他以前从未见过这样的事情。