Firebase Realtime Database模拟器报Client is offline错误是什么原因?
报错原文
I/RepoOperation: get for query /Users/ falling back to disk cache after error: Client is offline
可能的触发原因
- 模拟器自身网络异常
优先验证模拟器网络连通性:打开模拟器内置浏览器访问任意公网站点,如果无法加载,说明模拟器本身没有成功连接互联网。可尝试重启模拟器、重置模拟器网络配置解决,部分旧版本模拟器还需要将网络模式切换为桥接模式才能正常联网。 - 系统时间不同步
Firebase 请求依赖客户端时间做校验,如果模拟器的系统时间和标准时间偏差超过15分钟,会导致SSL握手失败、签名校验不通过,最终被判定为客户端离线。将模拟器系统时间设置为自动同步网络时间即可解决。 - 网络拦截规则冲突
如果开发机开启了全局代理、VPN或者防火墙,会拦截模拟器到Firebase服务器的请求,而实体设备使用独立移动网络不受该规则限制。临时关闭开发机的代理、防火墙后重试即可验证是否为该原因。 - 应用权限配置缺失
Android平台下需要检查AndroidManifest.xml中是否添加了INTERNET、ACCESS_NETWORK_STATE权限,部分模拟器对权限的校验逻辑比实体设备更严格,缺失对应权限会直接拦截应用的公网请求。 - 离线持久化策略冲突
如果你开启了Firebase Realtime Database的离线持久化功能,模拟器首次启动时没有成功联网的记录,本地无有效缓存数据时就会触发该报错。可先临时关闭离线持久化测试,确认问题后调整缓存兜底逻辑即可。
内容的提问来源于stack exchange,提问作者Anju
相关产品推荐
相关产品推荐

