Firebase数据库非拉丁字符节点引用返回null问题排查与解决
Firebase数据库非拉丁字符键返回null问题解决
问题重现
使用Firebase Realtime Database时,引用包含非拉丁字符的节点键(例如印地语的यूजर),调用s.val()返回null。
数据库结构示例:
यूजर: |--नाम:"नाम" |--पता:"मुंबई"
使用的JavaScript代码:
onValue(ref(db,"/यूजर"),(s)=>{ console.log(s.val()); // 输出null });
进一步查看引用对象时,发现路径中的/यूजर被转换为乱码यूजर:
_orderByCalled: false _path: Object pieceNum_: 0 pieces_: Array(1) 0: "यूजर" // /यूजर 已被转换为乱码 length: 1 __proto__: Array(0) __proto__: Object _queryParams: Object _repo: Object
问题根源
核心原因是页面字符编码未设置为UTF-8,导致非拉丁字符在传递给Firebase SDK时被错误编码,生成的路径无法匹配数据库中实际的节点键。
解决方案
在HTML文档的<head>标签内添加UTF-8编码声明:
<meta charset="UTF-8" />
添加后,页面会以UTF-8编码解析所有字符,Firebase SDK能正确识别非拉丁字符的节点路径,即可正常获取对应节点的数据。
内容的提问来源于stack exchange,提问作者Prateek Chaubey
相关产品推荐
相关产品推荐

