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