Firebase - Chrome中没有错误的追溯或行号

时间:2014-12-13 00:59:47

标签: firebase

<script src="https://cdn.firebase.com/js/client/2.0.6/firebase.js"></script>
<script>
var root_ref = new Firebase('https://jcatest.firebaseio.com')

function other_function() {
  // many lines of code here...
  var x = {}
  x.x()
  // many lines of code here...
}

function my_function(snap){
  other_function()
}
root_ref.once('value', my_function)
</script>

如果我将上述代码粘贴在html文件中并使用Chrome打开它,我在控制台中看到的是 &#34; Uncaught TypeError:undefined不是函数... firebase:26&#34;

在Firefox中,我看到实际的错误消息:

&#34; TypeError:x.x不是函数... temp.html:8&#34;

为什么我在Chrome中没有看到正确的错误消息?

这是Chrome的错误吗?一个Firebase错误?或者我做错了什么?

对我来说这是一个很大的问题,因为我的回调和firebase中的很多代码基本上都在说,&#34;某处出现了错误。&#34;不是很有帮助。

3 个答案:

答案 0 :(得分:3)

在Firebase网络客户端中,Firebase.DataSnapshot对象没有方法value(),但有val()方法,这可能是您正在寻找的方法。

有关详细信息,请参阅DataSnapshot文档。

我怀疑浏览器没有给你相关的错误行,因为错误发生在匿名函数中,但这是猜测。

答案 1 :(得分:3)

此问题在FirebaseJS版本2.0.6上可重现。使用Firebase 2.2.2,可以在两个浏览器上正确报告错误和完整堆栈跟踪。

答案 2 :(得分:1)

如果将回调包装在零ms setTimeout调用中,则会获得回溯。不确定为什么这是必要的。

root_ref.once('value', function(){ setTimeout(my_function) })