如何解决@react-native-firebase/admob 的基本用法给出:“TypeError: (0, _admob.default) is not a function”它被弃用了吗?或为什么不起作用?
@react-native-firebase/admob 被弃用了吗?或者只是..为什么它不起作用?
我正在使用 @react-native-firebase/admob (https://rnfb-docs.netlify.app/admob/usage)。 在使用“admob()”之前一切正常。当我向代码中添加 admob() 时出现此错误:
"TypeError: (0,_admob.default) 不是函数"
有人知道为什么吗?
import React from 'react';
import { Text,View} from 'react-native';
import admob,{ MaxAdContentrating } from '@react-native-firebase/admob';
import { InterstitialAd,RewardedAd,BannerAd,TestIds } from '@react-native-
firebase/admob';
import { BannerAdSize} from '@react-native-firebase/admob';
class App extends React.Component{
componentDidMount(){
// this was taked of official page: https://rnfb-docs.netlify.app/admob/usage#installation
admob()
.setRequestConfiguration({
// Update all future requests suitable for parental guidance
maxAdContentrating: MaxAdContentrating.PG,// Indicates that you want your content treated as child-directed for purposes of copPA.
tagForChildDirectedTreatment: true,// Indicates that you want the ad request to be handled in a
// manner suitable for users under the age of consent.
tagForUnderAgeOfConsent: true,})
.then(() => {
// Request config successfully set!
});
}
render(){
return(
<View style={{
alignItems:"center",justifyContent:"center",height:"100%"}}>
<Text style={{color:"black"}}>
Hola
</Text>
<BannerAd
unitId={TestIds.BANNER}
size={BannerAdSize.FULL_BANNER} />
</View>
)
}
}
export default App;
解决方法
为了完成您的搜索,我将补充说 Admob 已从 React Native Firebase 中删除,并且没有再次实施它的计划。仅在外部存储库上重新托管代码。 最后支持的版本是 11.5.0
这意味着如果您想在重新托管之前使用 RN Firebase Admob,您需要在此版本中使用所有其他服务(如 RNF 分析)。
有关详细信息,请查看 https://github.com/invertase/react-native-firebase/issues/5329#issuecomment-843272057
记得使用
dependencies{
"@react-native-firebase/admob": "11.5.0","@react-native-firebase/app": "11.5.0",}
代替
dependencies{
"@react-native-firebase/admob": "^11.5.0","@react-native-firebase/app": "^11.5.0",}```
,
我可以解决它。
已解决
只需在文件“package.json”中检查firebase的软件包是否具有相同的版本,例如:
dependencies{
"@react-native-firebase/admob": "^11.5.0","@react-native-firebase/app": "^11.5.0"
}
提示
适用于相似错误。
,尽管@CodeJoe 给出了答案,但我仍然对 React Native Firebase 的不同文档感到困惑,因此我花了很多时间和精力来解决它。
我打开了一个问题 here,其中确认 Google 自 v11.5.0
起删除了 AdMob 软件包。
AdMob 不再包含在 Firebase API 中,因此该模块不再包装它,也没有文档可以更正。 然而,它最近在 v11.5.0 版本中确实存在,如果您当时浏览存储库,您可以考虑 AdMob 的 e2e 测试当时的“如何使用 AdMob”入门https://github.com/invertase/react-native-firebase/tree/0217bff5cbbf233d7915efb4dbbdfe00e82dff23/packages/admob/e2e
请不要像我一样检查正确的文档和网站:
正确
Wrong Wrong Wrong,这是指较旧的版本
互联网有很长的记忆,所以有一些过时的文档副本,大约是的,但 rnfirebase.io 始终是官方和当前的文档站点
Admob 已被 Google 完全从 Firebase 生态系统中删除,因此此处不存在。有一些社区包,我们的 v11.5 版本有它,我们希望剥离我们的实现并为社区更新它,但这需要时间,不幸的是我们仍然积压在官方 firebase apis 上,所以它没有还没发生
因此,对于 AdMob 解决方案,我会使用另一个库,并将 react-native-firebase 用于他们目前提供的解决方案
替代图书馆(2021 年 8 月)
免责声明
- React Native Firebase 对于他们提供的其他软件包(Firebase、Analitycs...)来说仍然是一个很棒的库,而 Admob 11.5 版仍然是一个解决方案。这些只是 Admob 替代方案的建议。
- react-native-admob-alpha 简单新鲜的库,最近更新。
- react-native-admob-native-ads 另一个全新的库,他们实施了 Admob Native Advanced Ads。
- Expo AdMob (Available also for bare React-Native Projects)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。