如何使用Firebase远程配置打开/关闭Admob?

时间:2019-05-30 11:54:05

标签: flutter dart admob firebase-remote-config

我是Flutter和Remote Config的新手。在我的项目中,我试图关闭来自远程配置的广告横幅,如true / false语句,但我想我错过了一些东西。如果您给我任何建议,我将不胜感激。

我为flutter导入了远程插件,并进行了android集成。之后,我将其初始化

Future<RemoteConfig> setupRemoteConfig() async {
  final RemoteConfig remoteConfig = await RemoteConfig.instance;
  // Enable developer mode to relax fetch throttling
  remoteConfig.setConfigSettings(RemoteConfigSettings(debugMode: true));
  await remoteConfig.activateFetched();
  remoteConfig.setDefaults(<String, dynamic>{
    'admob_status': 'true',
  });
  return remoteConfig;
}

之后,我将其在下面的语句中添加到我的构建小部件中。

var value = remoteConfig.getString("admob_status");

    if(value == "true"){
      FirebaseAdMob.instance.initialize(appId: FirebaseAdMob.testAppId)
          .then((response) {
        myBanner
          ..load()
          ..show(
            //anchorOffset: 60.0,
              anchorType: AnchorType.bottom);
      });
    } else if(value == "false") {
      return null;
    }

输出为“在null上调用了方法'getString'。”

1 个答案:

答案 0 :(得分:0)

我想我找到了解决方案,似乎可行。也许将来会对您有帮助

checkAdmobStatus() async {
    final RemoteConfig remoteConfig = await RemoteConfig.instance;

    final defaults = <String, dynamic>{'status': 'true'};
    await remoteConfig.setDefaults(defaults);

    await remoteConfig.fetch();
    await remoteConfig.activateFetched();

    if ('true' == remoteConfig.getString('status')) {
      FirebaseAdMob.instance
          .initialize(appId: FirebaseAdMob.testAppId)
          .then((response) {
        myBanner
          ..load()
          ..show(anchorType: AnchorType.bottom);
      });
    }
  }