我们可以仅将 react-native-firebase 用于 android 和 IOS 其他由 react-native 提供的 api 吗?
Posted
技术标签:
【中文标题】我们可以仅将 react-native-firebase 用于 android 和 IOS 其他由 react-native 提供的 api 吗?【英文标题】:Can we use react-native-firebase for android only and for IOS other api provided by react-native? 【发布时间】:2018-12-12 21:50:30 【问题描述】:我已经实现了 Pushnotificationios ,一个由 react-native 提供的 api 工作正常。
最近我必须为 android 实现 pushnotification,我正在尝试使用 react-native-firebase@4.x.x 。我有特定于平台的处理程序,但适用于 android,但对于 IOS,应用程序在构建时崩溃并出现以下错误
版本详情: 反应原生:0.55 react-native-firebase:4.0.0
我尝试进行动态导入以摆脱 ios 的 react-native-firebase,但我不相信这种想法,因为它是一种 hack,会导致解析器错误。动态导入功能本身并不是一个稳定的功能。
.
【问题讨论】:
【参考方案1】:我不知道你的代码是怎样的,但你可以做的是取决于平台,是否导入库。 像这样的事情是:
if (Platform.OS == 'android')
firebase = require('react-native-firebase');
(这不适用于导入)
我完全不推荐的另一件事,但它会起作用,是将 firebase 链接到 iOS,这样它就不会启动错误,并且在使用该库时,您可以根据平台对其进行限制。像这样:
if (Platform.OS == 'android')
const notificationsOpen = await firebase.notifications().getInitialNotification()
【讨论】:
从导入返回到要求?这是个好主意吗?我想知道在这种情况下,我们可能只为 android 或 ios 使用一些包,这些包可能会破坏其他包。我们应该如何很好地处理这些场景。 这是在 react-native 官方文档上的 const Component = Platform.select( ios: () => require('ComponentIOS'), android: () => require('ComponentAndroid') , )(); facebook.github.io/react-native/docs/platform-specific-code 我不认为这是一个糟糕的主意。 (抱歉今天回复)以上是关于我们可以仅将 react-native-firebase 用于 android 和 IOS 其他由 react-native 提供的 api 吗?的主要内容,如果未能解决你的问题,请参考以下文章