微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

@react-native-firebase/admob 的基本用法给出:“TypeError: (0, _admob.default) is not a function”它被弃用了吗?或为什么不起作用?

如何解决@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


请不要像我一样检查正确的文档和网站:

正确

https://rnfirebase.io

Wrong Wrong Wrong,这是指较旧的版本

https://rnfb-docs.netlify.app


互联网有很长的记忆,所以有一些过时的文档副本,大约是的,但 rnfirebase.io 始终是官方和当前的文档站点

Admob 已被 Google 完全从 Firebase 生态系统中删除,因此此处不存在。有一些社区包,我们的 v11.5 版本有它,我们希望剥离我们的实现并为社区更新它,但这需要时间,不幸的是我们仍然积压在官方 firebase apis 上,所以它没有还没发生


因此,对于 AdMob 解决方案,我会使用另一个库,并将 react-native-firebase 用于他们目前提供的解决方案

替代图书馆(2021 年 8 月)

免责声明

  • React Native Firebase 对于他们提供的其他软件包(Firebase、Analitycs...)来说仍然是一个很棒的库,而 Admob 11.5 版仍然是一个解决方案。这些只是 Admob 替代方案的建议。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。