RTDB keepSynced 方法在应用关闭重启后的生效规则问询
Firebase RTDB
keepSynced 方法常见问题解答 1. 应用关闭后重新打开,相关库是否会保留此前设置为keepSynced=true的路径的同步状态?
不会,keepSynced的标记为会话级生效,仅在当前应用进程存活期间有效。应用完全关闭、进程销毁后,所有之前设置的keepSynced标记都会自动失效。
如果你开启了RTDB的磁盘持久化能力,此前同步到本地的路径数据会保留在本地磁盘,但keepSynced的自动同步标记仍然需要在应用重启后重新设置,才会继续监听并同步服务端的最新变动。
2. 将数据库某路径标记为keepSynced=true后,是否需要通过编码方式主动取消该路径的同步?
分场景判断:
- 如果后续业务不再需要该路径的实时同步,建议主动调用
keepSynced(false)取消标记,避免不必要的带宽、内存资源消耗,路径数据量越大的场景收益越明显。 - 如果是应用即将完全关闭的场景,不需要额外调用取消接口,进程销毁后标记会自动失效。
3. 业务数据大致每日更新一次,不同用户应用会话期需要保持同步的内容会发生变动,如何处理?
你可以按照如下逻辑适配业务需求:
- 每次应用启动、用户身份校验完成后,先拉取当前用户本次会话需要同步的路径列表,逐个调用
keepSynced(true)开启同步 - 会话过程中如果需要更换同步路径,先给旧路径调用
keepSynced(false)取消同步,再给新路径设置同步标记即可 - 每日数据更新的场景无需额外适配,只要路径的
keepSynced标记处于生效状态,RTDB会自动拉取服务端最新数据同步到本地。
内容的提问来源于stack exchange,提问作者Aaron
相关产品推荐
相关产品推荐

