反应本机和 Firebase 3

React Native and Firebase 3

我正在尝试集成 React Native 和 Firebase 3 身份验证。我的代码。

import { FIREBASE_CONFIG } from '../config';
import firebase from 'firebase/app';
import firebaseDatabase from 'firebase/database';
import firebaseAuth from 'firebase/auth';

firebase.initializeApp(FIREBASE_CONFIG);

export const rootRef = firebase.database();
export const authRef = firebase.auth();
配置

module.exports = {
  FIREBASE_CONFIG: {
    apiKey: "long string from firebase",
    authDomain: "xxxxx.firebaseapp.com",
    databaseURL: "https://xxxxx.firebaseio.com",
    storageBucket: "xxxxx.appspot.com"
  }
}

但是...

我是不是漏了什么?如果我是,你能给我指出正确的方向吗 配置

新的 firebase 不支持 react-native。 如果你想在 react-native 中使用 firebase,你使用 firebase 版本 2.4.2。 版本3不能使用firebase auth,firebase3可以使用realTimeDatabase。 如果你想使用firebase3 auth,我推荐使用web view,react-native-login但我觉得这样不太好。

firebase新版本Javascript SDK 3.1.0兼容React Native

https://firebase.google.com/support/release-notes/js#3.1.0

要使用 Firebase JS SDK 3.1+,您可能需要导入整个包:

import firebase from 'firebase'

而不是 firebase/app 等,否则你可能会得到这个错误:

The React native compatibility library was not found.

虽然 Firebase JS SDK 现在可以在 React Native 上运行,但它主要是为 Web 构建的,通常不是 React-Native 的最佳解决方案。

Firebase Web SDK 运行 完全基于 React Native 的 JS thread,因此会影响您的应用程序帧速率(link 解释得很好)。

在我的测试中,原生 firebase SDK 大约比使用网络 SDK 快 2-3 倍。

但除了潜在的性能影响之外,还有许多功能您将无法在 android/ios 设备上使用 Web SDK。例如:

  • 通知/FCM
  • 存储空间upload/download
  • Firebase 崩溃报告
  • 分析
  • 社交身份验证提供商的使用

最好的方法是 运行 使用本机 android/ios firebase sdk,并在它们和您的 js 代码(即本机模块设置)之间架起一座桥梁。

谢天谢地,您不必自己实现它,已经有模块可以为您执行此操作:

react-native-firebase 例如镜像 web sdk 的 api js 端,但使用本机 android 和 ios firebase sdk 在本机端执行。它与您可能已经实现的任何现有 firebase js 逻辑完全兼容,旨在作为 web sdk 的替代品。

(免责声明:我是 react-native-firebase 的作者)