开发环境Firestore读取auth集合文档报错:权限缺失或不足求助
解决Firestore读取权限不足(Missing or insufficient permissions)问题
根据你提供的规则、数据结构和代码,核心问题是请求未携带有效的用户认证信息,以下是具体排查和解决步骤:
1. 确认用户已完成Firebase Auth登录
你的Firestore规则明确要求 request.auth != null,即只有登录用户才能读写数据。调用getDoc前必须确保用户已经通过Firebase Auth完成登录:
- 检查登录流程是否正确执行,比如调用
signInWithEmailAndPassword后,是否等待Promise完成再发起Firestore请求 - 在读取代码前添加调试代码,确认当前用户状态:
如果输出为const currentUser = auth.currentUser; console.log('当前登录用户:', currentUser);null,说明用户未登录,这是权限错误的直接原因。
2. 验证文档路径正确性
确认newUserEmail.value的格式完全匹配Firestore中的文档ID:
- Firestore文档ID区分大小写,比如
Test@Example.com和test@example.com是两个不同的文档 - 检查邮箱地址是否包含多余空格或特殊字符,确保和集合中存储的文档ID完全一致
3. 临时测试规则(仅限开发环境)
将Firestore规则临时修改为以下内容,验证是否能正常读取:
rules_version = '2'; service cloud.firestore { match /databases/{database}/documents { match /{document=**} { allow read, write: if true; } } }
如果修改后能成功读取,说明原规则的权限逻辑没问题,问题出在用户认证流程上;如果还是报错,再检查Firestore实例初始化是否正确,比如db是否是当前项目的有效Firestore实例。
4. 检查Auth与Firestore实例的关联性
确保你的Firebase Auth实例和Firestore实例属于同一个项目,避免因跨项目导致认证信息无法正常传递到Firestore请求中。
内容的提问来源于stack exchange,提问作者user6434902
相关产品推荐
相关产品推荐

