哪个 Firebase javascript 包应该与 React Native 一起使用?常规的“Firebase Web SDK”还是“react-native-firebase”?
Posted
技术标签:
【中文标题】哪个 Firebase javascript 包应该与 React Native 一起使用?常规的“Firebase Web SDK”还是“react-native-firebase”?【英文标题】:Which Firebase javascript package should be used with React Native? The regular "Firebase Web SDK " or "react-native-firebase"? 【发布时间】:2021-07-19 02:38:06 【问题描述】:Firebase 网络 SDK - https://www.npmjs.com/package/firebase。
react-native-firebase - https://www.npmjs.com/package/react-native-firebase
我之前的理解是 Web SDK 可能不会提供 React Native 中的所有功能。但现在我面临着很多严重的问题。我还没有尝试过 react-native-firebase。
一个问题是我的项目直到上个月都运行良好。现在,当我尝试写入 firebase 时,它会显示错误。身份验证部分工作正常。只是firestore给出了错误。像这样-
[Sun Apr 25 2021 19:43:33.243] BUNDLE ./index.js
error: Error: Unable to resolve module ./prebuilt.rn-cf004e03.js from D:\bareWorkflowRN\backup23\tester1PaymentsNPlacePicker\node_modules\@firebase\firestore\dist\rn\index.js:
None of these files exist:
* node_modules\@firebase\firestore\dist\rn\prebuilt.rn-cf004e03.js(.native|.android.ts|.native.ts|.ts|.android.tsx|.native.tsx|.tsx|.android.js|.native.js|.js|.android.jsx|.native.jsx|.jsx|.android.json|.native.json|.json)
* node_modules\@firebase\firestore\dist\rn\prebuilt.rn-cf004e03.js\index(.native|.android.ts|.native.ts|.ts|.android.tsx|.native.tsx|.tsx|.android.js|.native.js|.js|.android.jsx|.native.jsx|.jsx|.android.json|.native.json|.json)
> 1 | import firebase from '@firebase/app';
2 | import '@firebase/util';
3 | import '@firebase/logger';
4 | import '@firebase/webchannel-wrapper';
at ModuleResolver.resolveDependency (D:\bareWorkflowRN\backup23\tester1PaymentsNPlacePicker\node_modules\metro\src\node-haste\DependencyGraph\ModuleResolution.js:168:15)
at DependencyGraph.resolveDependency (D:\bareWorkflowRN\backup23\tester1PaymentsNPlacePicker\node_modules\metro\src\node-haste\DependencyGraph.js:353:43)
at Object.resolve (D:\bareWorkflowRN\backup23\tester1PaymentsNPlacePicker\node_modules\metro\src\lib\transformHelpers.js:271:42)
at resolve (D:\bareWorkflowRN\backup23\tester1PaymentsNPlacePicker\node_modules\metro\src\DeltaBundler\traverseDependencies.js:571:33)
at D:\bareWorkflowRN\backup23\tester1PaymentsNPlacePicker\node_modules\metro\src\DeltaBundler\traverseDependencies.js:587:26
at Array.reduce (<anonymous>)
at resolveDependencies (D:\bareWorkflowRN\backup23\tester1PaymentsNPlacePicker\node_modules\metro\src\DeltaBundler\traverseDependencies.js:586:33)
at D:\bareWorkflowRN\backup23\tester1PaymentsNPlacePicker\node_modules\metro\src\DeltaBundler\traverseDependencies.js:275:33
at Generator.next (<anonymous>)
at asyncGeneratorStep (D:\bareWorkflowRN\backup23\tester1PaymentsNPlacePicker\node_modules\metro\src\DeltaBundler\traverseDependencies.js:87:24)
我想知道 react-native-firebase 在这里是否会有所帮助,或者是否有人知道此问题的解决方案。
我尝试了cd android
和gradlew clean
命令
【问题讨论】:
你绝对应该使用 react-native-firebase。 Web SDK 是为浏览器编写的,react-native 没有浏览器提供的某些功能。 【参考方案1】:正如@LonelyCpp 在 cmets 中提到的,您必须使用 react-native-firebase
,这将为您提供 React Native 框架的更多功能和全部功能,但 Firebase Web SDK
仅适用于本机 javascript(Vanilla JS 或 Plain JS),它适用于 Web浏览器。
【讨论】:
以上是关于哪个 Firebase javascript 包应该与 React Native 一起使用?常规的“Firebase Web SDK”还是“react-native-firebase”?的主要内容,如果未能解决你的问题,请参考以下文章
React Native:使用哪个 firebase 存储 npm 包?
哪个包实现了与 firebase_admob 一起使用的 RequestConfiguration?
无论哪个用户登录,arrayList 总是加载来自 Firebase 数据库的用户信息?