未捕获错误:新Firebase失败:第一个参数必须是有效的firebase URL,路径不能包含“。”,“#”,“$”,“[”或“]”

时间:2014-11-14 02:58:34

标签: angularjs firebase

在AngularJS应用中,我试图获取确实存在的firebase引用,并且我在此处遵循类似问题的建议。

现在,我已经将控制器中的以下行识别为罪魁祸首:

var indexRef = new Firebase(refString);

它位于setTimeout()中,因为它似乎解决了另一个未定义的错误。我目前有

refString.replace(/\/|:|#|%|\.|\[|\| ]/g, '');

为了避免

  

未捕获错误:新Firebase失败:第一个参数必须是有效的firebase网址,路径不能包含"。","#",&#34 ; $"," [",或"]"。

这是一个在Heroku上正常投放的实例,此处是plnkr.

2 个答案:

答案 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,因此需要在保存为数据库密钥之前解析主机。