反应本机和 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"
}
}
但是...
我是不是漏了什么?如果我是,你能给我指出正确的方向吗
配置
- React Native 0.26.2
- Firebase 3.0.2
新的 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
要使用 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 的作者)
我正在尝试集成 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"
}
}
但是...
我是不是漏了什么?如果我是,你能给我指出正确的方向吗 配置
- React Native 0.26.2
- Firebase 3.0.2
新的 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
要使用 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 的作者)