Javascript Firebase';价值';事件不是';t在本机中点火
我有一个函数,用于订阅firebase子url上的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(
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中这样做的事实造成了问题。