React Native上的Firebase客户端

时间:2015-04-08 14:07:03

标签: firebase reactjs react-native

在ReactNative上使用Firebase时,会显示以下错误消息:

  

无法找到变量进程

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

  

无法找到变量文档

我该如何解决这个问题?

3 个答案:

答案 0 :(得分:4)

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

您无法使用firebase的节点模块的原因是因为还没有为反馈原生的websockets支持(firebase依赖于)创建了一个polyfill。

如果你看看issue #619反应原生的回购,你会发现当前有关创建websockets api polyfill的讨论。

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

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

enter image description here

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

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

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

答案 1 :(得分: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);
    
  4. 现在应该就行了!

答案 2 :(得分:0)

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

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