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

使用示例代码向Firestore上传文件返回404错误(Code=-13010)

问题原因及解决方案

核心问题1:混淆Firebase Storage与Firestore的规则配置

你上传文件用的是Firebase Storage服务,但配置的却是**Firestore(云数据库)**的规则——这两个是Firebase完全独立的服务,规则不通用。当前Storage的默认规则大概率是拒绝所有操作,导致上传请求被拦截,返回的404是权限异常的表现形式。

核心问题2:上传了空数据

代码中let data = Data()是一个空的二进制数据对象,虽然官方示例是占位用,但空数据上传可能触发Storage的异常校验,干扰正常上传流程。

额外问题:Firestore规则过期

你配置的Firestore规则限定了request.time < timestamp.date(2023, 5, 24),这个时间早已过期,但这只影响Firestore数据库的读写,和文件上传无关。


解决步骤

  1. 配置正确的Firebase Storage规则
    进入Firebase控制台,找到Storage服务的规则页面,替换为正确的Storage规则(示例规则,可根据需求调整权限):

    rules_version = '2';
    service firebase.storage {
      match /b/{bucket}/o {
        match /{allPaths=**} {
          allow read, write: if request.auth != null; // 仅允许已认证用户读写
          // 或临时测试用:allow read, write: if true;(上线前务必修改)
        }
      }
    }
    
  2. 上传有效数据
    将空的Data()替换为实际要上传的文件数据,比如从本地文件读取:

    // 示例:从本地文件读取数据
    guard let fileURL = Bundle.main.url(forResource: "rivers", withExtension: "jpg") else { return }
    guard let data = try? Data(contentsOf: fileURL) else { return }
    
  3. 更新Firestore规则(可选)
    如果需要正常使用Firestore数据库,更新规则的时间限制,或调整为符合业务需求的权限配置。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 15:45:16