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

Next.JS 13 + Firebase V9:Cloud Storage无默认存储桶问题求助

解决Firebase V9 + Next.js 13中Cloud Storage的“No default bucket found”错误

核心问题:误用await调用同步的ref函数

你的代码中对ref函数添加了await,但ref是同步方法,无需异步等待。这会导致storageRef变成Promise对象而非正确的Storage引用,后续操作无法识别存储桶,进而抛出“No default bucket found”错误。

修复后的downloadFile函数:

import { storage } from "@/firebase"
import { ref, getDownloadURL } from "firebase/storage";

const downloadFile = async (fileName: string) => {
    // 移除不必要的await,ref为同步函数
    const storageRef = ref(storage);
    const fileRef = ref(storageRef, fileName);

    // 获取文件下载链接
    const downloadUrl = await getDownloadURL(fileRef);
    
    // 补充完整的文件下载逻辑(原代码仅发起fetch未处理下载动作)
    const response = await fetch(downloadUrl, {
        method: "GET",
        mode: "cors",
    });
    const blob = await response.blob();
    const url = window.URL.createObjectURL(blob);
    
    const downloadLink = document.createElement('a');
    downloadLink.href = url;
    downloadLink.download = fileName;
    document.body.appendChild(downloadLink);
    downloadLink.click();
    
    // 清理临时资源
    window.URL.revokeObjectURL(url);
    document.body.removeChild(downloadLink);
};

export default downloadFile;

额外排查点

  1. 环境变量的客户端访问权限
    Next.js 13中,客户端组件无法读取未以NEXT_PUBLIC_开头的环境变量。检查你的.env文件,确保存储桶变量命名为NEXT_PUBLIC_FIREBASE_STORAGEBUCKET,而非FIREBASE_STORAGEBUCKET,否则客户端会无法获取存储桶地址。

    示例.env配置:

    NEXT_PUBLIC_FIREBASE_APIKEY=your_api_key
    NEXT_PUBLIC_FIREBASE_AUTHDOMAIN=your_auth_domain
    NEXT_PUBLIC_FIREBASE_PROJECTID=your_project_id
    NEXT_PUBLIC_FIREBASE_STORAGEBUCKET=your_storage_bucket_url
    NEXT_PUBLIC_FIREBASE_MESSAGEID=your_message_id
    NEXT_PUBLIC_FIREBASE_APPID=your_app_id
    
  2. Firebase SDK版本兼容性
    你当前使用的Firebase SDK版本是9.23.0,尝试升级到最新稳定版,避免版本bug导致的异常。运行以下命令更新:

    npm install firebase@latest
    
  3. 存储桶配置验证
    确认Firebase控制台中存储桶已正确创建,且存储桶区域与项目配置一致。同时检查存储桶的权限规则,确保允许当前用户读取目标文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 09:05:38