【问题标题】:Firebase client on ReactNativeReact Native 上的 Firebase 客户端
【发布时间】:2015-06-13 13:12:24
【问题描述】:

在 ReactNative 上使用 Firebase 时,会显示这样的错误信息:

找不到变量进程

但是,如果我手动需要firebase/lib/firebase-web.js,它将显示:

找不到可变文档

我该如何解决这个问题?

【问题讨论】:

标签: firebase reactjs react-native


【解决方案1】:

我在我的 react native 应用程序中尝试使用 sockets.io 时遇到了同样的问题,希望我能提供帮助。

您不能使用 firebase 的 node 模块的原因是,还没有为 react native 中的 websockets 支持(firebase 所依赖的)创建 polyfill。

如果您查看 react native 的 repo 中的 issue #619,您会发现当前关于创建 websockets api polyfill 的讨论。

我们解决这个问题的方法是使用 Jason 的套接字库的修改版本并围绕该文件创建 our own repo。然后我们将下面的行添加到我们的 package.json 依赖项中。

"react-sockets": "crewapp/react-native-sockets-io"

Jason 版本的 sockets.io 客户端文件起作用的原因是 react-native 作为用户代理添加的。您可以在文件顶部找到进行此更改的代码:

window.navigator = {
  userAgent: "react-native"
}

完成这些步骤后,您应该可以正常要求 sockets.io / firebase

【讨论】:

  • 那么这是使用 firebase-web 吗?
【解决方案2】:

只是想通了。 Pavan 的回答很有帮助,但在与 Firebase 一起使用时并不完全正确。

对于firebase,请按照以下步骤操作:

  1. wsExample 下载firebase-debug.js。或者您可以通过 npm 安装 wsExample 并在其中要求 firebase-debug.js
  2. 使用 badfortrains 的分叉 React-Native:

    "react-native": "git://github.com/badfortrains/react-native#WebSocket"
    
  3. 像这样新建 Firebase:

    var firebase = require("../../firebase-debug.js");
    var rootRef = new Firebase(Const.FB_ROOT);
    

现在应该可以正常工作了!

【讨论】:

    【解决方案3】:

    我在 React Native 上也遇到了 socket.io 的问题,解决方案是获取有关新数据的通知,如果数据足够大 - 通过简单的 RESTfull 请求获取它。在我的情况下,数据足够小,可以在通知 API 中全部发送。

    我正在使用 GCM 服务从 nodejs 服务器向手机发送通知。顺便说一句,它使用的电池比插座连接少,而且效果很好:)

    【讨论】:

      猜你喜欢
      • 2022-01-20
      • 2019-08-21
      • 2020-03-05
      • 1970-01-01
      • 2020-02-26
      • 1970-01-01
      • 2018-06-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多