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

Firebase Firestore运行代码报X-Goog-Upload-Command头缺失错误

报错原因与修复方案

核心问题说明

你遇到的X-Goog-Upload-Command请求头缺失报错,根本原因是方法调用场景不匹配:
getUploadSessionUri()是Firebase Cloud Storage 断点续传上传功能专属的方法,仅在Storage上传任务的回调中返回有效值,如果你在Firestore文档读写的任务回调中调用该方法,就会触发请求头缺失的报错。

你触发的报错信息:
Invalid request. X-Goog-Upload-Command header is missing

问题代码:

if (task.isSuccessful()){
    Uri download_uri = task.getResult().getUploadSessionUri();
}

修复方案

根据你的实际业务场景选择对应修复逻辑:

  • 如果你正在操作Firestore读写文档,直接替换为文档快照读取逻辑即可:
    if (task.isSuccessful()) {
        DocumentSnapshot document = task.getResult();
        if (document.exists()) {
            // 按字段名读取文档存储的内容即可
            String targetValue = document.getString("自定义字段名");
        }
    }
    
  • 如果你实际是在做Cloud Storage文件上传,不要用getUploadSessionUri()获取下载地址,正确逻辑如下:
    if (task.isSuccessful()) {
        // 你的Storage文件引用对象调用获取下载地址方法
        yourStorageRef.getDownloadUrl().addOnSuccessListener(uri -> {
            // 此处获取的uri才是可用的文件下载地址
            Uri download_uri = uri;
        });
    }
    
  • 如果你确实需要使用断点续传上传能力,需要在初始化上传请求时手动添加请求头X-Goog-Upload-Command: start启动会话,后续分片上传时同步更新该请求头的取值即可。

内容的提问来源于stack exchange,提问作者Diyorbek Achilov

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 12:18:02