You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter Firestore写入失败:Stream关闭报错求助

解决方案:Firestore写入报错NoSuchMethodError: getBuffer()Lokio/Buffer

这个错误本质是okio库版本冲突导致的——grpc依赖的okio版本和项目中其他依赖的okio版本不兼容,旧版okio的getBuffer()方法在新版中被移除/修改,引发方法找不到的异常。

以下是具体解决步骤:

  • 先查看项目依赖树,确认冲突的okio版本:
    在终端执行命令:

    flutter pub deps
    

    搜索okio,检查是否存在多个不同版本的依赖。

  • 强制统一okio版本:
    打开android/build.gradle文件,在allprojects下的subprojects块中添加版本约束:

    allprojects {
        repositories {
            // 保留原有仓库配置
        }
    
        subprojects {
            configurations.all {
                // 强制使用兼容的okio版本,推荐2.x系列(比如2.10.0),适配grpc和Firestore
                force 'com.squareup.okio:okio:2.10.0'
            }
        }
    }
    
  • 确保Firebase依赖版本统一:
    检查pubspec.yaml中所有Firebase相关依赖(比如firebase_core、cloud_firestore)的版本是否一致,避免因版本不匹配引发连锁依赖冲突。

  • 清理并重新构建项目:

    flutter clean
    flutter pub get
    flutter run
    

补充:如果上述方法无效,可以尝试降级Firestore依赖到之前能正常运行的版本,或者检查是否有其他第三方依赖引入了高版本okio,针对性调整该依赖的版本。

内容的提问来源于stack exchange,提问作者Sara Almashharawi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 17:25:22