Javascript Firebase';价值';事件不是';t在本机中点火

Javascript Firebase';价值';事件不是';t在本机中点火,javascript,firebase,react-native,Javascript,Firebase,React Native,我有一个函数,用于订阅firebase子url上的value事件。看起来像 function getMessages(chat) { var ref = new Firebase(".../"+chat+"/messages"); ref.limitToLast(10).on('value', function(snapshot) { ... }); } 这是从React组件的componentWillMount方法调用的,如下所示: componentWillMount(

我有一个函数,用于订阅firebase子url上的
value
事件。看起来像

function getMessages(chat) {
  var ref = new Firebase(".../"+chat+"/messages");
  ref.limitToLast(10).on('value', function(snapshot) {
    ...
  });
}
这是从React组件的
componentWillMount
方法调用的,如下所示:

componentWillMount() {
    getMessages(this.props.chat);
}
我第一次调用这个函数时,一切都正常,而且速度很快。但是,如果我使用不同的
chat
参数调用它,则不会触发回调。第一次装载甚至一次也没有

据我所知,通过每隔一行放置
console.log
componentWillMount
正在启动,
getMessages
正在被调用

有什么好处?有什么想法吗

谢谢


编辑:注意,我试图在React Native中实现这一点。我进一步简化了,让我的React组件直接连接到firebase。这在fiddle中工作得很好,但在React Native中,当它第一次连接时,如果您单击“上一步”进入另一个聊天,它将永远不会触发
事件。

在一个全新的项目中,它似乎起作用,因此问题一定在其他地方

添加代码示例,我们可以看到如何调用getMessages以及使用什么聊天工具value@Gavriel我添加了更多的细节。但并没有那么复杂。所有调用似乎都正确,值回调永远不会启动。你知道如何更好地调试引擎盖下的Firebase中发生的事情吗。我曾尝试向.on()调用添加一个取消回调,但也没有触发。这听起来很奇怪。您可以设置一个JSFIDLE/jsbin来复制该行为吗?如果不需要反应部件来解决问题,请随意放下它们。@FrankvanPuffelen我把它放在小提琴里,它工作得很好。我开始认为是我试图在React Native中这样做的事实造成了问题。