【问题标题】:How to check if FirebaseFirestore has already been started in Android?如何检查 FirebaseFirestore 是否已经在 Android 中启动?
【发布时间】:2019-08-18 08:00:26
【问题描述】:

简单问题:如何在 Android(Java 和 Kotlin)中内联检查 Firestore 是否已经启动?

我想知道的不必要的解释:

我使用 Firestore 进行了一些不同的活动。如果我在另一个活动中设置后尝试设置设置(例如PersistenceEnabled 或CacheSize),它将使应用程序崩溃并返回以下内容:

“错误:FirebaseFirestore 已启动,无法再更改其设置。您只能在调用 FirebaseFirestore 对象上的任何其他方法之前调用 setFirestoreSettings()。”

我知道我可以简单地在应用程序的第一个/主要/启动活动中设置设置。这将消除直接的问题,但不会在不遵循正常 UI 流程的特定用例中。

例如,打开 activityB 的深层链接,然后用户备份到 activityA(最初应用设置的位置),然后应用程序将崩溃,因为在 activityB 使用 Firestore 时应用了默认设置,而 activityA 尝试再次设置它们.

activityA 中的简单内联检查将允许我应用自定义设置而不会导致应用程序崩溃。 (是的,我可以将应用程序设计为始终通过 activityA 并根据意图加载正确的活动,但这会效率低下,并且会产生从深层链接打开的轻微时间/性能成本。)

【问题讨论】:

标签: java android firebase kotlin google-cloud-firestore


【解决方案1】:

您可以通过另一个单例或静态方法强制您对 FirebaseFirestore 单例的所有访问,该方法仅在调用后执行一次初始化。使用此方法的后续访问必须在内部检查它是否已经初始化,然后跳过初始化。

【讨论】:

    猜你喜欢
    • 2014-03-30
    • 2021-06-21
    • 2013-02-10
    • 2013-12-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多