Skip to content

Commit c6c591c

Browse files
author
Bas Buijsen
committed
add ktx syntax and publishing config
1 parent e5d103d commit c6c591c

File tree

9 files changed

+33
-9
lines changed

9 files changed

+33
-9
lines changed

.github/workflows/publish.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,8 @@ jobs:
2828
run: ./gradlew :updateVersions
2929
- name: Grant execute permission for gradlew
3030
run: chmod +x gradlew
31+
- name: Publish Firebase Analytics
32+
run: ./gradlew :firebase-analytics:publish
3133
- name: Publish Firebase App
3234
run: ./gradlew :firebase-app:publish
3335
- name: Publish Firebase Auth

build.gradle.kts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ val minSdkVersion by extra(23)
3636
tasks {
3737
register("updateVersions") {
3838
dependsOn(
39+
"firebase-analytics:updateVersion", "firebase-analytics:updateDependencyVersion",
3940
"firebase-app:updateVersion", "firebase-app:updateDependencyVersion",
4041
"firebase-auth:updateVersion", "firebase-auth:updateDependencyVersion",
4142
"firebase-common:updateVersion", "firebase-common:updateDependencyVersion",

firebase-analytics/src/androidMain/kotlin/dev/gitlive/firebase/analytics/analytics.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@ actual val Firebase.analytics: FirebaseAnalytics
99
get() = FirebaseAnalytics(com.google.firebase.Firebase.analytics)
1010

1111
actual class FirebaseAnalytics(val android: com.google.firebase.analytics.FirebaseAnalytics) {
12-
actual fun logEvent(name: String, parameters: Map<String, String>) {
13-
android.logEvent(name, parameters.toBundle())
12+
actual fun logEvent(name: String, parameters: Map<String, String>?) {
13+
android.logEvent(name, parameters?.toBundle())
1414
}
1515
actual fun logEvent(name: String, block: FirebaseAnalyticsParameters.() -> Unit) {
1616
val params = FirebaseAnalyticsParameters()

firebase-analytics/src/commonMain/kotlin/dev/gitlive/firebase/analytics/analytics.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import dev.gitlive.firebase.Firebase
55
expect val Firebase.analytics: FirebaseAnalytics
66

77
expect class FirebaseAnalytics {
8-
fun logEvent(name: String, parameters: Map<String, String>)
8+
fun logEvent(name: String, parameters: Map<String, String>? = null)
99
fun logEvent(name: String, block: FirebaseAnalyticsParameters.() -> Unit)
1010
fun setUserProperty(name: String, value: String)
1111
fun setUserId(id: String)

firebase-analytics/src/commonTest/kotlin/dev/gitlive/firebase/analytics/analytics.kt

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,11 @@ import dev.gitlive.firebase.Firebase
88
import dev.gitlive.firebase.FirebaseOptions
99
import dev.gitlive.firebase.apps
1010
import dev.gitlive.firebase.initialize
11+
import dev.gitlive.firebase.runBlockingTest
12+
import kotlin.test.AfterTest
1113
import kotlin.test.BeforeTest
14+
import kotlin.test.Test
15+
import kotlin.test.assertNotNull
1216

1317
expect val emulatorHost: String
1418
expect val context: Any
@@ -35,4 +39,21 @@ class FirebaseAnalyticsTest {
3539

3640
analytics = Firebase.analytics
3741
}
42+
43+
@AfterTest
44+
fun deinitializeFirebase() = runBlockingTest {
45+
Firebase.apps(context).forEach {
46+
it.delete()
47+
}
48+
}
49+
50+
@Test
51+
fun testAnalyticsShouldNotCrash() {
52+
assertNotNull(analytics)
53+
54+
// This should not crash, otherwise the test will fail
55+
analytics.logEvent("test") {
56+
param("key", "value")
57+
}
58+
}
3859
}

firebase-analytics/src/iosMain/kotlin/dev/gitlive/firebase/analytics/analytics.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,10 @@ actual val Firebase.analytics: FirebaseAnalytics
1111
get() = FirebaseAnalytics(FIRAnalytics)
1212

1313
actual class FirebaseAnalytics(val ios: FIRAnalytics.Companion) {
14-
actual fun logEvent(name: String, parameters: Map<String, String>) {
15-
val mappedParameters: Map<Any?, String> = parameters.map {
14+
actual fun logEvent(name: String, parameters: Map<String, String>?) {
15+
val mappedParameters: Map<Any?, String>? = parameters?.map {
1616
it.key to it.value
17-
}.toMap()
17+
}?.toMap()
1818
ios.logEventWithName(name, mappedParameters)
1919
}
2020
actual fun logEvent(name: String, block: FirebaseAnalyticsParameters.() -> Unit) {

firebase-analytics/src/jsMain/kotlin/dev/gitlive/firebase/analytics/analytics.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ actual val Firebase.analytics: FirebaseAnalytics
1919
actual class FirebaseAnalytics(val js: dev.gitlive.firebase.analytics.externals.FirebaseAnalytics) {
2020
actual fun logEvent(
2121
name: String,
22-
parameters: Map<String, String>
22+
parameters: Map<String, String>?
2323
) {
2424
jsLogEvent(js, name, parameters)
2525
}

firebase-analytics/src/jsMain/kotlin/dev/gitlive/firebase/analytics/externals/analytics.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import kotlin.js.Promise
66

77
external fun getAnalytics(app: FirebaseApp? = definedExternally): FirebaseAnalytics
88

9-
external fun jsLogEvent(app: FirebaseAnalytics, name: String, parameters: Map<String, String>)
9+
external fun jsLogEvent(app: FirebaseAnalytics, name: String, parameters: Map<String, String>?)
1010
external fun jsSetUserProperty(app: FirebaseAnalytics, name: String, value: String)
1111
external fun jsSetUserId(app: FirebaseAnalytics, id: String)
1212
external fun jsResetAnalyticsData(app: FirebaseAnalytics)

firebase-analytics/src/jvmMain/kotlin/dev/gitlive/firebase/analytics/analytics.jvm.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ actual val Firebase.analytics: FirebaseAnalytics
77
get() = TODO("Not yet implemented")
88

99
actual class FirebaseAnalytics {
10-
actual fun logEvent(name: String, parameters: Map<String, String>) {}
10+
actual fun logEvent(name: String, parameters: Map<String, String>?) {}
1111
actual fun logEvent(name: String, block: FirebaseAnalyticsParameters.() -> Unit) {}
1212
actual fun setUserProperty(name: String, value: String) {}
1313
actual fun setUserId(id: String) {}

0 commit comments

Comments
 (0)