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

时间:2019-08-18 08:00:26

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

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

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

我使用Firestore有一些不同的活动。如果我尝试在其他活动中对设置进行设置后(例如PersistenceEnabledCacheSize),它将使应用程序崩溃并返回以下内容:

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

我了解我可以在应用程序的first / main / splash活动中简单地设置设置。这将消除紧迫的问题,但在不遵循常规UI流程的特定用例中不会解决。

例如,一个深层链接打开了activityB,然后用户备份到activityA(最初应用设置),然后该应用将崩溃,因为当activityB使用Firestore时,默认设置已应用,而activityA尝试再次设置它们

一个简单的内联活动ActivityA将使我能够应用自定义设置而不会导致应用程序崩溃。 (是的,我可以将应用程序设计为始终执行activityA并根据意图加载正确的活动,但是这样做效率不高,并且会产生从深度链接打开的时间/性能成本。)

1 个答案:

答案 0 :(得分:0)

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