React Native 上的 Firebase 客户端
Firebase client on ReactNative
在ReactNative上使用Firebase时,会出现这样的错误信息:
can't find variable process
但是,如果我手动要求 firebase/lib/firebase-web.js
,它将显示:
can't find variable document
我该如何解决这个问题?
我刚刚在我的 React 本机应用程序中尝试使用 sockets.io 时遇到了同样的问题,希望我能提供帮助。
你不能使用firebase的节点模块的原因是因为在react native中还没有为websockets支持(firebase依赖)创建一个polyfill。
如果您查看 issue #619 中的 react native 回购协议,您会发现当前关于创建 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。
只是我们的计算。 Pavan 的回答很有帮助,但在与 Firebase 一起使用时并不完全正确。
对于 firebase,请按照以下步骤操作:
- 从 wsExample 下载
firebase-debug.js
。或者您可以通过 npm 安装 wsExample 并在其中要求 firebase-debug.js
。
使用 badfortrains 的分叉 React-Native:
"react-native": "git://github.com/badfortrains/react-native#WebSocket"
像这样新建 Firebase:
var firebase = require("../../firebase-debug.js");
var rootRef = new Firebase(Const.FB_ROOT);
现在一切正常!
我在 React Native 上也遇到了 socket.io 的问题,解决方案是获取有关新数据的通知,如果数据足够大 - 通过简单的 RESTfull 请求获取它。在我的例子中,数据足够小,可以在通知 API.
内全部发送
我正在使用 GCM 服务从 nodejs 服务器向 phone 发送通知。顺便说一句,它比插座连接使用更少的电池并且工作得很好:)
在ReactNative上使用Firebase时,会出现这样的错误信息:
can't find variable process
但是,如果我手动要求 firebase/lib/firebase-web.js
,它将显示:
can't find variable document
我该如何解决这个问题?
我刚刚在我的 React 本机应用程序中尝试使用 sockets.io 时遇到了同样的问题,希望我能提供帮助。
你不能使用firebase的节点模块的原因是因为在react native中还没有为websockets支持(firebase依赖)创建一个polyfill。
如果您查看 issue #619 中的 react native 回购协议,您会发现当前关于创建 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。
只是我们的计算。 Pavan 的回答很有帮助,但在与 Firebase 一起使用时并不完全正确。
对于 firebase,请按照以下步骤操作:
- 从 wsExample 下载
firebase-debug.js
。或者您可以通过 npm 安装 wsExample 并在其中要求firebase-debug.js
。 使用 badfortrains 的分叉 React-Native:
"react-native": "git://github.com/badfortrains/react-native#WebSocket"
像这样新建 Firebase:
var firebase = require("../../firebase-debug.js"); var rootRef = new Firebase(Const.FB_ROOT);
现在一切正常!
我在 React Native 上也遇到了 socket.io 的问题,解决方案是获取有关新数据的通知,如果数据足够大 - 通过简单的 RESTfull 请求获取它。在我的例子中,数据足够小,可以在通知 API.
内全部发送我正在使用 GCM 服务从 nodejs 服务器向 phone 发送通知。顺便说一句,它比插座连接使用更少的电池并且工作得很好:)