Kotlin 与 Java 中的 Firebase 分析初始化
Posted
技术标签:
【中文标题】Kotlin 与 Java 中的 Firebase 分析初始化【英文标题】:Firebase Analytics initialization in Kotlin vs Java 【发布时间】:2021-07-20 14:05:09 【问题描述】:我想知道为什么在 Kotlin 中初始化 Firebase Analytics 不需要上下文,而 Java 却需要?
来自文档:
Java:
mFirebaseAnalytics = FirebaseAnalytics.getInstance(context);
Kotlin:
firebaseAnalytics = Firebase.analytics
【问题讨论】:
和JAVA一样 【参考方案1】:Kotlin 版本是一个扩展属性。根据docs:
@NonNull static fun getInstance(@NonNull context: Context): FirebaseAnalytics
返回单例 FirebaseAnalytics 接口。
而analytics
,这是一个扩展属性:
val Firebase.analytics:FirebaseAnalytics
返回默认 FirebaseApp 的 FirebaseAnalytics 实例。
【讨论】:
在我自己的类记录器中使用 Kotlin 版本可以吗?我的意思是,我有两个选项来创建我的 util 类来记录分析事件: 1. 传递上下文并使用 getInstance(); 2. 只使用 Kotlin 版本。第二种方法有什么问题吗? 是的,如果您已经在应用程序中使用 Kotlin,那么只需使用扩展 firebase 库以上是关于Kotlin 与 Java 中的 Firebase 分析初始化的主要内容,如果未能解决你的问题,请参考以下文章
Firebase @Exclude 与 kotlin 数据类
Firebase:在 Kotlin/Java 中使用枚举字段的干净方式?
Android 中的 Firebase 通知 (Kotlin)