哪个 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 androidgradlew 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”?的主要内容,如果未能解决你的问题,请参考以下文章

哪个定价层提到 Firebase 身份验证?

React Native:使用哪个 firebase 存储 npm 包?

哪个包实现了与 firebase_admob 一起使用的 RequestConfiguration?

无论哪个用户登录,arrayList 总是加载来自 Firebase 数据库的用户信息?

如何知道在 Flutter 应用中使用哪个版本的 Google Firebase 插件?

允许用户在使用angular firebase与google注册时,选择用哪个邮箱注册。