在AngularJS应用中,我试图获取确实存在的firebase引用,并且我在此处遵循类似问题的建议。
现在,我已经将控制器中的以下行识别为罪魁祸首:
var indexRef = new Firebase(refString);
它位于setTimeout()中,因为它似乎解决了另一个未定义的错误。我目前有
refString.replace(/\/|:|#|%|\.|\[|\| ]/g, '');
为了避免
未捕获错误:新Firebase失败:第一个参数必须是有效的firebase网址,路径不能包含"。","#",&#34 ; $"," [",或"]"。
答案 0 :(得分:3)
您不希望在网址中替换正斜杠。顺便说一下,你应该试着弄清楚正则表达式字符类是什么。
您应该使用console.log()来显示replace()的结果,以查看您实际用于firebase的URL:
var refString = 'https://path/to' + '/index/domains/' + 'other/stuff';
console.log(refString.replace(/\//g, ''));
--output:--
https:somethinghereindexdomainsotherstuff
该网址不适用于互联网。你必须知道基本的javascript,以及基本的javascript调试,之前试图学习angular或firebase。
答案 1 :(得分:0)
答案不是用正则表达式解析refString,而是解析位置。
var refString = baseURL+'/index/domains/'+ location.replace(/\./g, '-');
console.log('refString',refString);
输出:refString https://tezt.firebaseio.com/index/domains/run-plnkr-co
refString =路径https://tezt.firebaseio.com/domains上的数据库ID,因此需要在保存为数据库密钥之前解析主机。