调用 update() 数据库引用时的 Firebase 无效路径 javascript

Firebase invalid path in call to update() database ref javascript

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

Uncaught Error: Firebase.child failed: First argument was an invalid path: "contractors/jk116734s". Paths must be non-empty strings and can't contain ".", "#", "$", "[", or "]"

正如您在上面的记录消息中看到的那样,路径不包含任何不需要的字符并且路径不为空。奇怪的是,它确实更新了数据库中的一条记录,但其他所有记录都失败了。路径 "contractors/jk116734s" 我也在记录所有路径,并且 none 未定义或包含无效字符。 jk***** 部分 url 都是唯一的 fyi。

这是我的函数,每次成功创建帐户时都会调用它。

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 以在更新调用中使用。

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

You can use encodeURI for showing the hidden stuffs.