Firebase查询单个用户数据返回Null,其他用户正常求助
Firebase实时数据库查询返回Null问题排查
问题详情
我有一个userPowerData集合,使用如下代码获取指定用户的数据:
var ref = firebase.database().ref("userBatteryData/Tony Morgan") ref.orderByKey().limitToLast(100).on('value', function(snapshot) { console.log(snapshot) });
查询用户Tony Morgan时,控制台打印出Null,但查询其他用户的数据可正常获取,不清楚该用户的数据节点存在什么问题,附相关截图。
排查解决方向
- 校验路径准确性:确认
userBatteryData/Tony Morgan的节点路径与Firebase控制台中的节点完全一致,注意空格、大小写(Firebase路径区分大小写),比如是否存在拼写错误,比如TonyMorgan(无空格)的情况。 - 确认节点数据存在:直接在Firebase控制台中找到
userBatteryData下的Tony Morgan节点,查看该节点是否真的包含子数据,而非空节点。如果节点本身为空,快照自然返回Null。 - 检查安全规则:查看实时数据库的安全规则,确认当前访问的客户端拥有读取
Tony Morgan节点的权限,有可能该节点的权限配置与其他用户节点不同,导致无法读取。 - 测试数据读取方式:改用一次性读取的方式排查,同时打印数据存在性,代码示例:
var ref = firebase.database().ref("userBatteryData/Tony Morgan"); ref.once('value').then(snapshot => { console.log("数据是否存在:", snapshot.exists()); console.log("快照值:", snapshot.val()); });
- 检查子节点key类型:如果
Tony Morgan节点下的子节点key不是字符串类型(比如数字类型),orderByKey()的排序逻辑可能无法正确匹配,导致返回空结果,可尝试去掉orderByKey().limitToLast(100)直接读取节点数据测试。
内容的提问来源于stack exchange,提问作者StormTrooper
相关产品推荐
相关产品推荐

