Xcode真机/模拟器运行App闪退,报FIRInvalidArgumentException错误
问题根因
崩溃由FIRInvalidArgumentException异常触发,错误描述Document path cannot be empty明确指向代码调用Firestore接口时传入了空的文档/集合路径,和你尝试排查的Pod集成、Firebase项目配置没有直接关联。
修复步骤
- 全局检索项目中所有Firestore、GeoFire相关的读写、初始化、监听代码,重点排查以下场景:
- 拼接路径时用到的变量(如用户UID、业务ID、自定义标识)未完成赋值就被调用
- 直接传入空字符串作为
document(_:)、collection(_:)方法的参数 - 初始化GeoFire时传入的集合路径参数为空
- 在所有Firestore操作前添加路径非空校验,参考代码:
Swift示例:
Objective-C示例:guard let uid = Auth.auth().currentUser?.uid, !uid.isEmpty else { return } // 拼接路径后再次校验 let docPath = "users/\(uid)" guard !docPath.isEmpty else { return } let ref = Firestore.firestore().document(docPath)NSString *uid = [FIRAuth auth].currentUser.uid; if (!uid || uid.length == 0) { return; } NSString *docPath = [NSString stringWithFormat:@"users/%@", uid]; if (docPath.length == 0) { return; } FIRDocumentReference *ref = [[FIRFirestore firestore] documentWithPath:docPath]; - 调整依赖用户身份的Firestore操作时机,所有需要用到Auth登录信息拼接路径的操作,必须放在Auth登录成功的回调中执行,避免App启动时Auth还未完成初始化就调用相关接口。
- 若校验路径逻辑无问题,清理Pod依赖缓存重新安装:
- 执行
pod deintegrate清除项目原有Pod配置 - 删除Podfile.lock文件和Pods文件夹
- 执行
pod install --repo-update重新拉取最新兼容版本的依赖
- 执行
内容的提问来源于stack exchange,提问作者user12751306
相关产品推荐
相关产品推荐

