Xcode中FirebaseFirestore持续打印事务提交日志问题求助
问题解答
日志对应的事务说明
这条日志是Firestore SDK内部的本地索引回填(Backfill Indexes)操作,并非你代码中主动调用的事务。Firestore会在后台自动维护本地缓存的索引,确保离线时查询能正常工作,这个事务就是SDK在尝试同步本地索引状态,只是当前没有任何索引变更需要提交(日志里的0 changes也能说明这点)。
无休止打印的原因
- Firebase 9.5.0版本bug:这个版本的Firestore SDK在iOS模拟器环境下存在本地索引维护的循环触发问题,导致SDK反复执行无实际变更的索引回填事务,进而持续打印日志。
- 日志级别设置未生效:你设置的
FirebaseConfiguration.shared.setLoggerLevel(.min)是全局Firebase日志级别,但Firestore有独立的日志控制逻辑,全局设置并未覆盖Firestore的Info级日志输出。
解决办法
- 升级Firebase版本:将Firebase相关Pod版本升级到9.6.0及以上,官方已经修复了这个循环打印的问题。修改Podfile后执行
pod update即可。 - 单独设置Firestore日志级别:在Firebase初始化后,单独关闭Firestore的Info级日志,只保留错误日志:
// 在FirebaseApp.configure()之后添加 Firestore.firestore().settings.loggerLevel = .error
- 控制台过滤日志:如果暂时无法升级,可通过Xcode控制台的过滤规则屏蔽这条日志,在控制台输入框中输入:
NOT I-FST000001
内容的提问来源于stack exchange,提问作者Bharat Biswal
相关产品推荐
相关产品推荐

