Javascript &引用;上下文“;Firebase.on的参数不起作用

Javascript &引用;上下文“;Firebase.on的参数不起作用,javascript,firebase,Javascript,Firebase,“context”是Firebase.on的第四个参数 on(eventType, callback, [cancelCallback], [context]) 上下文对象*可选 如果提供了此对象,则在调用回调时将使用此对象 但它似乎不起作用 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>firebase sample</title>

“context”是Firebase.on的第四个参数

on(eventType, callback, [cancelCallback], [context])

上下文对象*可选

如果提供了此对象,则在调用回调时将使用此对象

但它似乎不起作用

<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title>firebase sample</title>

  <script src="bower_components/firebase/firebase-debug.js"></script>
</head>
<body>

  <script>
    (function () {
      var listener = {
        onChildAdded: function (snapshot) {
          console.log(this);
        }
      };
      console.log(listener);

      var ref = new Firebase("https://<YOUR_FIREBASE_APP>.firebaseio.com");
      ref.on("child_added", listener.onChildAdded, null, listener);
    })();
  </script>
</body>
</html>

这个问题是bug还是规范?

我认为问题在于,如果第三个参数为null,则不考虑第四个参数,因此尝试将空函数作为第三个参数传递

ref.on("child_added", listener.onChildAdded, function(){}, listener);

实际上,根据源代码,可选的
取消
回调应该省略,不提供
空值
/
未定义的值。这在文档中可能不明显,但
取消
是可选的

您使用的是哪个版本的firebase?我使用的是firebase 2.2.7。谢谢!当然,它工作得很好,但没有记录在案。我认为这是不合理的,也不是用户友好的api。谢谢!当然,它工作得很好,但没有记录在案。我认为这是不合理的,也不是用户友好的api。
ref.on("child_added", listener.onChildAdded, function(){}, listener);