java - 如何检查FirebaseFirestore是否已经在Android中启动?

标签 java android firebase kotlin google-cloud-firestore

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

不必要的解释为什么我想知道:

我使用 Firestore 进行了一些不同的 Activity 。如果我在另一个 Activity 中设置这些设置(例如 PersistenceEnabledCacheSize)后尝试进行设置,则会导致应用程序崩溃并返回以下内容:

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

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

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

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

最佳答案

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

关于java - 如何检查FirebaseFirestore是否已经在Android中启动?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57542732/

相关文章:

java - 不同项目之间的 Autowiring

Java jsoup 选择内容

Android WebView 的 window.innerWidth 来了 313

java - 为什么在 Android Studio 中使用 Firebase 数据库时 onClick 内的 "If Condition"不起作用?

java - TinkerPop - 从多个顶点检索值会产生奇怪的输出

java - Spring AOP——如何防止派生类被针对

android - setEGLConfigChooser() 中的 "depthSize"和 "stencilSize"是什么意思?

android - Android Firebase实现不正确

java - firebase 访问 token 是否自动刷新?

javascript - 模拟 firstore : Firestore (8. 5.0):无法访问 Cloud Firestore 后端