nativeScript-firebase
适用于 Firebase node.js SDK 的 Nativescript 兼容包装器
npm i --save nativescript-firebase

nativeScript-firebase

这是一个与 Nativescript 兼容的 Firebase node.js SDK 包装器。

许可证

本模块采用 MIT 许可证。Firebase 和其他模块有不同的许可证。

安装

tns plugin add nativescript-firebase 

使用

与 node.js 中的 Firebase 完全相同

var Firebase = require("nativescript-firebase");

var fb = new Firebase("some-app.firebaseio.com");

本模块使用实际的 Firebase node.js SDK(见 package.json 依赖项)。

工作原理

本模块以捆绑模块的形式提供 Firebase node.js SDK 所需的一些依赖项。版本 0.0.1 和 0.0.2 使用了修改后的 require 函数,但我更改了这一点,因为大约在 Nativescript 1.5.0 版本之后,他们似乎用每个模块提供的参数替换了全局 require,这意味着无法覆盖。

捆绑的模块主要是其他模块的包装,或者 Nativescript 的内部功能。它们包括:

  • _stream_duplex(使用 readable-stream
  • _stream_readable(使用 readable-stream
  • _stream_writable(使用 readable-stream
  • emitter(使用 tiny-emitter,它与 Nativescript 兼容)
  • faye-websocket(使用 nativescript-websockets - 见下文)
  • https(使用 https-browserify,它又使用 Nativescript 的 XMLHttpRequest
  • inherits(使用 inherits-browser.js

我将 faye-websocketinherits 包装器的版本号设置为 999.9.9,以覆盖更深层次依赖项中的模块。

以下模块也被使用,并且无需额外操作即可与 Nativescript 兼容:

  • buffer
  • events
  • util(需要自定义 inherits

以下全局变量也被创建,以使修改后的模块和 Firebase 一起工作:

  • process(带有 versionnextTickplatformenv
  • window(带有 XMLHttpRequest
  • buffer(使用 buffer 模块)

这是通过 NathanaelA 的 nativescript-websockets 模块的修改版本实现的,该版本为 一个 SSL 问题 提供了解决方案。此模块是 Firebase 所需的 faye-websocket 模块的替代品。

限制和警告

本模块尚未经过严格测试。以下是我能正常工作的功能

  • 使用主密钥登录
  • 使用 OAuth 令牌登录(需要 https 模块)
  • 使用 once()on() 获取一些数据
  • 使用 push() 设置数据

大多数功能应该都能正常工作,但可能还需要更多的错误修复。我在我的项目中使用它,因此随着我使用它的频率增加,它将得到进一步的测试。

请注意,由于 这个问题,本模块可能与 Nativescript 1.5.1 存在问题。