如何在 onStart() 方法中从 Firebase 远程配置实现 fetch() ?

2024-01-19

我正在尝试实现调用 Firebase 远程配置fetch()中的方法onStart()。我以为这会很容易,但经过几次尝试后却发现并非如此。

首先,我想尽快检查新的配置值用户打开应用程序 and 超出缓存过期时间。这就是我选择的原因onStart()方法来做到这一点。

起初我使用标准方法:

//called in Activity onStart() method
public static void fetchRemoteConfigValues(Activity activity) { 
        long cacheExpirationInSeconds = 43200L;
        firebaseRemoteConfig.fetch(cacheExpirationInSeconds)
                .addOnSuccessListener(activity, new OnSuccessListener<Void>() {
                    @Override
                    public void onSuccess(Void aVoid) {
                        LOGD(TAG, "onSuccess: Fetch Succeeded");
                        FirebaseRemoteConfig.getInstance().activateFetched();

                    }
                })
                .addOnFailureListener(activity, new OnFailureListener() {
                    @Override
                    public void onFailure(@NonNull Exception e) {
                        LOGE(TAG, "onFailure: Fetch Failed", e);
                    }
                });
}

一切都会正常工作,除了存在超过缓存过期时间并且没有互联网连接的情况,因此onFailure叫做。现在我的问题是:

  1. 为什么此失败请求会增加油门计数器?

在没有互联网的情况下进行几次 fetch() 调用后FirebaseRemoteConfigFetchException上交FirebaseRemoteConfigFetchThrottledException。现在,即使互联网再次可用,由于油门限制,我也无法从服务器获取数据。

我的临时解决方法是在调用 fetch() 之前检查互联网可用性:

public static void fetchRemoteConfigValues(Activity activity) { 
    if (NetworkHelper.isNetworkAvailable(activity))
        long cacheExpirationInSeconds = 43200L;
        firebaseRemoteConfig.fetch(cacheExpirationInSeconds)
        (...)
    }
}

但是,当建立连接但仍然没有互联网/服务器没有响应时,可能会导致一些问题。

  1. 对于我的问题有更好的解决方案/方法吗?

None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 onStart() 方法中从 Firebase 远程配置实现 fetch() ? 的相关文章

随机推荐

  • 我可以在 Razor 中使用 @helper 语法返回字符串吗?

    我有一个 RazorHelpers cshtml 文件app code看起来像 using Molecular AdidasCoach Library GlobalConstants helper Translate string key
  • 将工具提示与 Windows 应用程序中的 CHM 帮助集成

    我们正在尝试重新设计 Windows 桌面应用程序的文档流程 我们的两个要求是 以 CHM 格式提供 参考 帮助 提供有关各个控件的工具提示帮助 目前我们的工具提示被硬编码到 Delphi C Builder 表单中 但我理想情况下希望避免
  • libVLC 函数 media_player_new() 抛出分段错误

    media player new 抛出分段错误 import vlc ins vlc Instance player ins media player new 这是它崩溃的地方 Thread 0 Crashed Dispatch queue
  • scala:为什么 1/0 是算术异常但 1.0/0.0 = Double.Infinity

    在 Scala 中 整数算术除以零会抛出 a 这似乎不一致java lang ArithmeticException by zero 但是浮点运算 1 0 0 0 返回Double Infinity 我知道从类型的角度来看 同时拥有 Dou
  • 默认函数参数的有效表达式

    函数或成员函数中默认参数的有效表达式有哪些可能类型 在对函数参数类型的变量进行赋值的上下文中任何正确的内容 Edit编译期间的默认参数根据类型正确性等进行评估 但不会计算它们 并且直到运行时才会进行赋值 您可以将尚未定义的类的构造函数指定为
  • 如何根据方法名称动态调用方法? [复制]

    这个问题在这里已经有答案了 当方法的名称包含在字符串变量中时 如何动态调用该方法 例如 class MyClass def foo end def bar end end obj MyClass new str get data from
  • Forth 中的内存管理

    所以我刚刚学习 Forth 很好奇是否有人可以帮助我了解内存管理通常是如何工作的 目前我只有 一些 C 堆栈与堆范例的经验 据我了解 可以在字典中分配 也可以在堆上分配 字典是否像 C 中的堆栈更快 更受欢迎 但与 C 不同的是 它没有作用
  • Excel,将一个范围附加到一列中另一个范围的末尾

    我的 Excel 中有两列数据 我想添加结合第一列和第二列的第三列 如何使用公式执行此操作 以便可以在 A 列和 B 列中添加或删除数据 而无需接触 C 列 Column A Column B Column C Bob Mary Bob J
  • 是否可以使用一行将流收集到两个不同的集合?

    我有以下代码 为了勇敢而简化 public void search Predicate
  • Jenkins 使用 Git 和 Deploy Key 进行构建

    我将 git 插件添加到 Jenkins 中 我已经作为构建服务器上的 jenkins 用户生成了一个公钥 我将此密钥作为部署密钥添加到 github 我添加了带有 jenkins 名称和电子邮件的全局 git 属性 并且电子邮件与公钥末尾
  • 在 Rails 模型中;保存到数据库时,符号会自动转换为 YAML。正确的做法是什么?

    在我的模型示例游戏中 有一个状态列 但我通常通过使用符号来设置状态 例子 self status active MATCH STATUS betting on gt Betting is on home team won gt Home t
  • Firefox 的 execCommand 复制异步替代方案

    document execCommand copy 可以在 Promise 的解析函数中使用 Firefox 除外 Chrome Opera 甚至 Safari 等所有现代浏览器都允许最多 1 秒的异步复制 我想改善用户体验并在剪贴板中计算
  • 使用 HDFS 更改更新 Hive 外部表

    可以说 我从文件 myFile csv 位于 HDFS 中 创建了 Hive 外部表 myTable myFile csv 每天都会更改 那么我也有兴趣每天更新一次 myTable 是否有任何 HiveQL 查询告诉每天更新表 谢谢 P S
  • AddEntityFrameworkStores 只能由派生自 IdentityUser 的用户调用

    我正在尝试为我的网络应用程序创建一些角色 但由于以下原因它并没有真正起作用Tkey exception 如果您投赞成票 我很高兴 这样其他需要帮助的人就可以更多地看到它 我不知道如何解决它 我认为我的 Startup cs 有问题 无论我尝
  • 将其他计费注册字段与 WooCommerce 中的默认 Wordpress 字段同步

    我已将以下代码添加到 Woocommerce 用户注册表中 以获取注册页面上的账单详细信息 现在当新用户注册时会发生什么 名字和姓氏将在账单详细信息数据库以及默认 WordPress 用户帐户中注册 如果用户更新其帐户 wordpress
  • Git 强制覆盖本地跟踪文件,但不覆盖本地未跟踪文件

    我正在一个名为的本地目录中工作p1其中包含一个 git 存储库 添加分支并对添加的分支进行提交后 我制作了目录的副本p1并称之为p2 我的目的是在目录中尝试合并和变基 只是为了学习 p2 同时从p1当我决定如何合并 重新调整我的更改时 但是
  • 插入符号交叉验证中的预处理

    我有一个关于数据预处理的问题需要澄清 据我了解 当我们通过交叉验证调整超参数并估计模型性能时 我们需要在交叉验证中进行 而不是预处理整个数据集 换句话说 在交叉验证中 我们对训练折叠进行预处理 然后使用相同的预处理参数来处理测试折叠并进行预
  • .NET 示例 VCF 阅读器

    有谁知道使用 C NET 从 VCF 文件中提取数据的好示例 内联回复或网络教程 现在还有人用VCF文件吗 对于联系人管理系统来说 这值得吗 让我有点惊讶的是 它没有内置到 NET Framework 的任何地方 但我确实找到了本教程 我计
  • 将 ExpandoObject 持久保存到 MongoDB

    我有一个具有任意数量属性的 ExpandoObject 我想将这些属性作为 BsonDocument 保存到 MongoDB 数据库 我尝试使用以下代码来执行此操作 private BsonDocument GetPlayerDocumen
  • 如何在 onStart() 方法中从 Firebase 远程配置实现 fetch() ?

    我正在尝试实现调用 Firebase 远程配置fetch 中的方法onStart 我以为这会很容易 但经过几次尝试后却发现并非如此 首先 我想尽快检查新的配置值用户打开应用程序 and 超出缓存过期时间 这就是我选择的原因onStart 方