简单问题:如何内联检查Firestore是否已在Android(Java和Kotlin)中启动?
我不想知道的不必要解释:
我使用Firestore有一些不同的活动。如果我尝试在其他活动中对设置进行设置后(例如PersistenceEnabled
或CacheSize
),它将使应用程序崩溃并返回以下内容:
“错误:FirebaseFirestore已经启动,并且其设置无法再更改。您只能在调用FirebaseFirestore对象上的任何其他方法之前调用setFirestoreSettings()。”
我了解我可以在应用程序的first / main / splash活动中简单地设置设置。这将消除紧迫的问题,但在不遵循常规UI流程的特定用例中不会解决。
例如,一个深层链接打开了activityB,然后用户备份到activityA(最初应用设置),然后该应用将崩溃,因为当activityB使用Firestore时,默认设置已应用,而activityA尝试再次设置它们
一个简单的内联活动ActivityA将使我能够应用自定义设置而不会导致应用程序崩溃。 (是的,我可以将应用程序设计为始终执行activityA并根据意图加载正确的活动,但是这样做效率不高,并且会产生从深度链接打开的时间/性能成本。)
答案 0 :(得分:0)
您可以通过另一个单例或静态方法强制所有对FirebaseFirestore单例的访问,该方法仅在调用后一次执行初始化。使用此方法的后续访问将必须在内部检查其是否已初始化,然后跳过init。