Firebase无效路径调用update()数据库参考javascript

时间:2017-07-06 09:15:20

标签: javascript node.js firebase firebase-realtime-database firebase-admin

我正在使用Firebase node.js admin sdk通过带有自定义uid的csv导入程序创建用户帐户。一切正常。在成功创建帐户时,我想更新数据库引用。但是,每当函数循环创建数据库中的条目时,它都会失败并显示消息

  

未捕获错误:Firebase.child失败:第一个参数是无效路径:" contractors / jk116734s"。路径必须是非空字符串,并且不能包含"。","#"," $"," [& #34;,或"]"

enter image description here

正如您在上面记录的消息中看到的那样,路径中不包含任何不需要的字符,并且路径不为空。奇怪的是,它确实更新了数据库中的一条记录,但所有其他记录都失败了。路径"承包商/ 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"});

    });

}

你也可以看到一个条目正在创建,但其余条目都没有。

enter image description here

奇怪的是,如果我不使用自定义uid并使用firebase创建的自动uid一切正常。我不明白的是,所有帐户都是使用自定义uid创建的,并且正如您所看到的那样,我正在将自定义uid重新用于更新调用。

1 个答案:

答案 0 :(得分:3)

看起来 ni 的值中可能存在不可见的字符。请参阅此答案 - stackoverflow.com/a/12793237/782358 - 以显示这些字符:

  

您可以使用encodeURI来显示隐藏的内容。