Firestore简单Get查询异常:文档存在却返回null请求协助
Firestore Get查询返回null但文档存在的排查方案
检查Firestore安全规则
默认安全规则可能限制读取权限,比如仅允许认证用户访问。可临时将规则改为开放(仅用于测试,测试后务必恢复安全规则):rules_version = '2'; service cloud.firestore { match /databases/{database}/documents { match /{document=**} { allow read, write: if true; } } }测试是否能正常获取数据,若恢复正常,说明原规则限制了读取。
确认文档路径完全匹配
Firestore对集合名、文档ID的大小写和拼写严格敏感:- 核对代码中
collection("users")的集合名是否与Firestore控制台中的集合名完全一致(比如区分"Users"和"users"); - 确认文档ID
EOLjcTCCvMfsi9mnbNynAGwCo723是否与控制台中的文档ID完全匹配,避免复制时遗漏或多写字符。
- 核对代码中
强制从服务器获取数据
Firestore客户端会缓存数据,若之前该文档不存在,可能缓存了null结果。修改代码强制从服务器拉取:var user = await FirebaseFirestore.instance .collection("users") .doc("EOLjcTCCvMfsi9mnbNynAGwCo723") .get(const GetOptions(source: Source.server));也可尝试清除App缓存或卸载重装,验证是否能获取最新数据。
验证文档的实际存在性
- 确认你查看的Firebase项目与代码连接的项目一致;
- 在Firestore控制台的「规则」标签中使用模拟器,测试读取该文档的权限,看是否能成功返回数据,排除控制台显示延迟或路径错误的问题。
内容的提问来源于stack exchange,提问作者Rishabh
相关产品推荐
相关产品推荐

