【问题标题】:Firebase 'value' events aren't firing in React NativeFirebase 的“价值”事件在 React Native 中没有触发
【发布时间】:2016-02-06 21:20:39
【问题描述】:

我有一个函数可以订阅 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。 Check out this fiddle。这在小提琴中完美运行,但在 React Native 中,当它第一次连接时,如果你点击 back 并进入另一个聊天,它永远不会触发 value 事件。

【问题讨论】:

  • 添加代码示例,我们可以在其中看到您如何调用 getMessages 以及使用什么聊天值
  • @Gavriel 我添加了更多细节。但这并不复杂。一切似乎都被正确调用,值回调永远不会触发。您知道有什么方法可以更好地调试 Firebase 中发生的事情。我尝试在 .on() 调用中添加取消回调,但也不会触发。
  • 这听起来很奇怪。您可以设置一个重现该行为的 jsfiddle/jsbin 吗?如果不需要解决问题,请随意丢弃 react 部分。
  • @FrankvanPuffelen 我已经把它放在了一个小提琴中,它工作得很好。我开始认为这是我试图在 React Native 中执行此操作导致问题的事实。

标签: javascript firebase react-native


【解决方案1】:

在一个全新的项目中,它似乎可以工作,所以问题一定出在其他地方。 Here's a gist.

【讨论】:

    猜你喜欢
    • 2019-01-20
    • 2020-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-20
    • 1970-01-01
    相关资源
    最近更新 更多