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

Firestore报错求助:未登录时出现FIRFirestoreErrorDomain Code=13内部错误

解决Firestore Error Code=13 "内部错误"(仅未登录时触发)

首先,这个看似模糊的“内部错误”其实是Firestore在权限校验不通过时的一种“委婉”提示——本质是未登录用户没有权限访问你的places集合,只是错误信息没有直接点明而已。结合你说的“登录后正常”的现象,完全符合这个逻辑。

下面给你几个针对性的解决方案,按优先级排序:

1. 检查并调整Firestore安全规则

这是最直接的原因:你的Firestore安全规则大概率默认设置为仅允许已认证用户访问所有资源。可以按以下步骤修改:

  • 打开Firebase控制台,进入你的项目 → Firestore数据库 → 规则标签页
  • 查看当前规则,默认的规则通常是这样的:
    rules_version = '2';
    service cloud.firestore {
      match /databases/{database}/documents {
        match /{document=**} {
          allow read, write: if request.auth != null;
        }
      }
    }
    
  • 如果需要让未登录用户也能读取places集合,修改规则为:
    rules_version = '2';
    service cloud.firestore {
      match /databases/{database}/documents {
        // 单独给places集合设置读取权限
        match /places/{document} {
          allow read: if true; // 允许所有用户读取(包括未登录)
          allow write: if request.auth != null; // 写操作仍需登录验证
        }
        // 其他集合保持原有认证要求
        match /{document=**} {
          allow read, write: if request.auth != null;
        }
      }
    }
    

    注意:开放if true的权限要谨慎,如果你只需要特定场景的未登录访问,可以进一步细化规则(比如限制读取数量、特定字段等),避免数据泄露风险。

2. 启用Firebase匿名认证(更安全的方案)

如果不想直接开放集合权限,你可以给未登录用户自动创建匿名身份,这样既满足Firestore的认证要求,又不需要用户输入账号密码:

在你的App初始化代码中(比如AppDelegate.swift的didFinishLaunchingWithOptions方法里,FirebaseApp.configure()之后)添加以下代码:

import FirebaseAuth

// 自动登录匿名用户
Auth.auth().signInAnonymously { authResult, error in
  if let error = error {
    print("匿名登录失败: \(error.localizedDescription)")
    return
  }
  // 匿名登录成功,用户现在拥有合法的认证身份
  let anonymousUser = authResult?.user
  print("匿名用户ID: \(anonymousUser?.uid ?? "未知")")
}

这样未登录状态下的用户也会被Firestore视为已认证用户,就能正常访问受规则保护的资源了。

3. 快速验证配置完整性

虽然你已经做了基础配置,但可以快速排查以下几点:

  • 确认GoogleService-Info.plist已正确添加到项目中,并且在Xcode的“Target Membership”中勾选了你的主App目标
  • 检查Firebase控制台中,你的项目是否已经启用了Firestore服务
  • 确认Firebase相关依赖(FirebaseFirestore、FirebaseAuth等)已正确安装(不管是用CocoaPods还是Swift Package Manager)

内容的提问来源于stack exchange,提问作者Kim-Jimin

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 08:30:14