我正在使用Firebase node.js admin sdk通过带有自定义uid的csv导入程序创建用户帐户。一切正常。在成功创建帐户时,我想更新数据库引用。但是,每当函数循环创建数据库中的条目时,它都会失败并显示消息
未捕获错误:Firebase.child失败:第一个参数是无效路径:" contractors / jk116734s"。路径必须是非空字符串,并且不能包含"。","#"," $"," [& #34;,或"]"
正如您在上面记录的消息中看到的那样,路径中不包含任何不需要的字符,并且路径不为空。奇怪的是,它确实更新了数据库中的一条记录,但所有其他记录都失败了。路径"承包商/ jk116734s"我也记录了所有路径,没有未定义或包含无效字符。网址的jk *****部分都是独一无二的。
这是我在每个成功创建帐户时调用的函数。
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"});
});
}
你也可以看到一个条目正在创建,但其余条目都没有。
奇怪的是,如果我不使用自定义uid并使用firebase创建的自动uid一切正常。我不明白的是,所有帐户都是使用自定义uid创建的,并且正如您所看到的那样,我正在将自定义uid重新用于更新调用。
答案 0 :(得分:3)
看起来 ni 的值中可能存在不可见的字符。请参阅此答案 - stackoverflow.com/a/12793237/782358 - 以显示这些字符:
您可以使用encodeURI来显示隐藏的内容。