调用 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.
我正在使用 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.