在调用更新()数据库ref javascript的Firebase无效path

我正在使用Firebase node.js admin sdk通过csv导入器使用自定义uid创build用户帐户。 这一切工作正常。 在成功创build帐户我想更新数据库引用。 但是,只要函数循环在db中创build条目,它就会失败,并显示消息

未被捕获的错误:Firebase.child失败:第一个参数是无效的path:“contractors / jk116734s”。 path必须是非空string,不能包含“。”,“#”,“$”,“[”或“]”

在这里输入图像描述

正如您在上面的日志消息中所看到的那样,path中不包含任何不需要的字符,path也不是空的。 奇怪的是,它确实更新了数据库中的一条logging,但其他所有的logging都失败了。 path“承包商/ jk116734s”我也logging所有的path,没有不确定的或包含无效的字符。 网站的部分内容都是独一无二的。

这是我的function,每个成功的帐户创build被调用。

function createDbEtnryForUser(index, contractorData) { var ni = contractorData.ni; var path = "contractors/" + ni console.log(path); databaseRoot.ref(path).update(contractorData); databaseRoot.ref(path).once('value',function(snapshot) { $('#row-'+index).css({"background-color":"green", "color":"white"}); }); } 

你也可以看到一个条目正在创build,但其余的不是。

在这里输入图像描述

奇怪的是,如果我不使用自定义的uid和使用由firebase创build的自动uids都工作正常。 我不明白的是,所有的帐户都是使用自定义uid创build的,正如您所看到的,我正在获取自定义uid,以便在调用中进行更新。

看起来ni的价值可能有看不见的字符。 看到这个答案 – stackoverflow.com/a/12793237/782358 – 显示这些字符:

你可以使用encodeURI来显示隐藏的东西。