Skip to content

Commit 5817981

Browse files
authored
Merge pull request GitLiveApp#504 from GitLiveApp/make-android-ios-js-properties-extensions
[BREAKING CHANGE] refactor .js, .android, .ios properties extensions
2 parents 70d0514 + b761a67 commit 5817981

File tree

87 files changed

+548
-263
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

87 files changed

+548
-263
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -259,7 +259,7 @@ It uses the <a href="https://github.com/GitLiveApp/firebase-java-sdk">Firebase J
259259

260260
### Accessing the underlying Firebase SDK
261261

262-
In some cases you might want to access the underlying official Firebase SDK in platform specific code, for example when the common API is missing the functionality you need. For this purpose each class in the SDK has `android`, `ios` and `js` properties which holds the equivalent object of the underlying official Firebase SDK. For *JVM*, as the `firebase-java-sdk` is a direct port of the Firebase Android SDK, is it also accessed via the `android` property.
262+
In some cases you might want to access the underlying official Firebase SDK in platform specific code, for example when the common API is missing the functionality you need. For this purpose each class in the SDK has `android`, `ios` and `js` extension properties that hold the equivalent object of the underlying official Firebase SDK. For *JVM*, as the `firebase-java-sdk` is a direct port of the Firebase Android SDK, is it also accessed via the `android` property.
263263

264264
These properties are only accessible from the equivalent target's source set. For example to disable persistence in Cloud Firestore on Android you can write the following in your Android specific code (e.g. `androidMain` or `androidTest`):
265265

firebase-analytics/api/android/firebase-analytics.api

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@ public final class dev/gitlive/firebase/analytics/AnalyticsKt {
1212

1313
public final class dev/gitlive/firebase/analytics/FirebaseAnalytics {
1414
public fun <init> (Lcom/google/firebase/analytics/FirebaseAnalytics;)V
15-
public final fun getAndroid ()Lcom/google/firebase/analytics/FirebaseAnalytics;
1615
public final fun getSessionId (Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
1716
public final fun logEvent (Ljava/lang/String;Ljava/util/Map;)V
1817
public static synthetic fun logEvent$default (Ldev/gitlive/firebase/analytics/FirebaseAnalytics;Ljava/lang/String;Ljava/util/Map;ILjava/lang/Object;)V
@@ -207,5 +206,6 @@ public final class dev/gitlive/firebase/analytics/FirebaseAnalyticsUserProperty
207206
public final class dev/gitlive/firebase/analytics/analyticsAndroid {
208207
public static final fun analytics (Ldev/gitlive/firebase/Firebase;Ldev/gitlive/firebase/FirebaseApp;)Ldev/gitlive/firebase/analytics/FirebaseAnalytics;
209208
public static final fun getAnalytics (Ldev/gitlive/firebase/Firebase;)Ldev/gitlive/firebase/analytics/FirebaseAnalytics;
209+
public static final fun getAndroid (Ldev/gitlive/firebase/analytics/FirebaseAnalytics;)Lcom/google/firebase/analytics/FirebaseAnalytics;
210210
}
211211

firebase-analytics/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@gitlive/firebase-analytics",
3-
"version": "1.13.0",
3+
"version": "2.0.0",
44
"description": "Wrapper around firebase for usage in Kotlin Multiplatform projects",
55
"main": "firebase-analytics.js",
66
"scripts": {
@@ -23,7 +23,7 @@
2323
},
2424
"homepage": "https://github.com/GitLiveApp/firebase-kotlin-sdk",
2525
"dependencies": {
26-
"@gitlive/firebase-app": "1.13.0",
26+
"@gitlive/firebase-app": "2.0.0",
2727
"firebase": "9.19.1",
2828
"kotlin": "1.6.10",
2929
"kotlinx-coroutines-core": "1.6.1-native-mt"

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

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,9 @@ public actual val Firebase.analytics: FirebaseAnalytics
1616
public actual fun Firebase.analytics(app: FirebaseApp): FirebaseAnalytics =
1717
FirebaseAnalytics(com.google.firebase.Firebase.analytics)
1818

19-
public actual class FirebaseAnalytics(public val android: com.google.firebase.analytics.FirebaseAnalytics) {
19+
public val FirebaseAnalytics.android: com.google.firebase.analytics.FirebaseAnalytics get() = android
20+
21+
public actual class FirebaseAnalytics(internal val android: com.google.firebase.analytics.FirebaseAnalytics) {
2022
public actual fun logEvent(name: String, parameters: Map<String, Any>?) {
2123
android.logEvent(name, parameters?.toBundle())
2224
}

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

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,9 @@ public actual val Firebase.analytics: FirebaseAnalytics
1515

1616
public actual fun Firebase.analytics(app: FirebaseApp): FirebaseAnalytics = FirebaseAnalytics(FIRAnalytics)
1717

18-
public actual class FirebaseAnalytics(public val ios: FIRAnalytics.Companion) {
18+
public val FirebaseAnalytics.ios: FIRAnalytics.Companion get() = ios
19+
20+
public actual class FirebaseAnalytics(internal val ios: FIRAnalytics.Companion) {
1921
public actual fun logEvent(name: String, parameters: Map<String, Any>?) {
2022
val mappedParameters: Map<Any?, Any>? = parameters?.map { it.key to it.value }?.toMap()
2123
ios.logEventWithName(name, mappedParameters)

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

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import dev.gitlive.firebase.Firebase
44
import dev.gitlive.firebase.FirebaseApp
55
import dev.gitlive.firebase.FirebaseException
66
import dev.gitlive.firebase.analytics.externals.getAnalytics
7+
import dev.gitlive.firebase.js
78
import kotlinx.coroutines.await
89
import kotlin.time.Duration
910

@@ -13,7 +14,9 @@ public actual val Firebase.analytics: FirebaseAnalytics
1314
public actual fun Firebase.analytics(app: FirebaseApp): FirebaseAnalytics =
1415
FirebaseAnalytics(getAnalytics(app.js))
1516

16-
public actual class FirebaseAnalytics(public val js: dev.gitlive.firebase.analytics.externals.FirebaseAnalytics) {
17+
public val FirebaseAnalytics.js: dev.gitlive.firebase.analytics.externals.FirebaseAnalytics get() = js
18+
19+
public actual class FirebaseAnalytics(internal val js: dev.gitlive.firebase.analytics.externals.FirebaseAnalytics) {
1720
public actual fun logEvent(
1821
name: String,
1922
parameters: Map<String, Any>?,

firebase-app/api/android/firebase-app.api

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,10 @@ public final class dev/gitlive/firebase/Firebase {
77
}
88

99
public final class dev/gitlive/firebase/FirebaseApp {
10-
public final fun component1 ()Lcom/google/firebase/FirebaseApp;
1110
public final fun copy (Lcom/google/firebase/FirebaseApp;)Ldev/gitlive/firebase/FirebaseApp;
1211
public static synthetic fun copy$default (Ldev/gitlive/firebase/FirebaseApp;Lcom/google/firebase/FirebaseApp;ILjava/lang/Object;)Ldev/gitlive/firebase/FirebaseApp;
1312
public final fun delete (Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
1413
public fun equals (Ljava/lang/Object;)Z
15-
public final fun getAndroid ()Lcom/google/firebase/FirebaseApp;
1614
public final fun getName ()Ljava/lang/String;
1715
public final fun getOptions ()Ldev/gitlive/firebase/FirebaseOptions;
1816
public fun hashCode ()I
@@ -23,6 +21,7 @@ public final class dev/gitlive/firebase/FirebaseKt {
2321
public static final fun app (Ldev/gitlive/firebase/Firebase;Ljava/lang/String;)Ldev/gitlive/firebase/FirebaseApp;
2422
public static final fun apps (Ldev/gitlive/firebase/Firebase;Ljava/lang/Object;)Ljava/util/List;
2523
public static synthetic fun apps$default (Ldev/gitlive/firebase/Firebase;Ljava/lang/Object;ILjava/lang/Object;)Ljava/util/List;
24+
public static final fun getAndroid (Ldev/gitlive/firebase/FirebaseApp;)Lcom/google/firebase/FirebaseApp;
2625
public static final fun getApp (Ldev/gitlive/firebase/Firebase;)Ldev/gitlive/firebase/FirebaseApp;
2726
public static final fun initialize (Ldev/gitlive/firebase/Firebase;Ljava/lang/Object;)Ldev/gitlive/firebase/FirebaseApp;
2827
public static final fun initialize (Ldev/gitlive/firebase/Firebase;Ljava/lang/Object;Ldev/gitlive/firebase/FirebaseOptions;)Ldev/gitlive/firebase/FirebaseApp;

firebase-app/api/jvm/firebase-app.api

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,10 @@ public final class dev/gitlive/firebase/Firebase {
77
}
88

99
public final class dev/gitlive/firebase/FirebaseApp {
10-
public final fun component1 ()Lcom/google/firebase/FirebaseApp;
1110
public final fun copy (Lcom/google/firebase/FirebaseApp;)Ldev/gitlive/firebase/FirebaseApp;
1211
public static synthetic fun copy$default (Ldev/gitlive/firebase/FirebaseApp;Lcom/google/firebase/FirebaseApp;ILjava/lang/Object;)Ldev/gitlive/firebase/FirebaseApp;
1312
public final fun delete (Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
1413
public fun equals (Ljava/lang/Object;)Z
15-
public final fun getAndroid ()Lcom/google/firebase/FirebaseApp;
1614
public final fun getName ()Ljava/lang/String;
1715
public final fun getOptions ()Ldev/gitlive/firebase/FirebaseOptions;
1816
public fun hashCode ()I
@@ -23,6 +21,7 @@ public final class dev/gitlive/firebase/FirebaseKt {
2321
public static final fun app (Ldev/gitlive/firebase/Firebase;Ljava/lang/String;)Ldev/gitlive/firebase/FirebaseApp;
2422
public static final fun apps (Ldev/gitlive/firebase/Firebase;Ljava/lang/Object;)Ljava/util/List;
2523
public static synthetic fun apps$default (Ldev/gitlive/firebase/Firebase;Ljava/lang/Object;ILjava/lang/Object;)Ljava/util/List;
24+
public static final fun getAndroid (Ldev/gitlive/firebase/FirebaseApp;)Lcom/google/firebase/FirebaseApp;
2625
public static final fun getApp (Ldev/gitlive/firebase/Firebase;)Ldev/gitlive/firebase/FirebaseApp;
2726
public static final fun initialize (Ldev/gitlive/firebase/Firebase;Ljava/lang/Object;)Ldev/gitlive/firebase/FirebaseApp;
2827
public static final fun initialize (Ldev/gitlive/firebase/Firebase;Ljava/lang/Object;Ldev/gitlive/firebase/FirebaseOptions;)Ldev/gitlive/firebase/FirebaseApp;

firebase-app/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@gitlive/firebase-app",
3-
"version": "1.13.0",
3+
"version": "2.0.0",
44
"description": "Wrapper around firebase for usage in Kotlin Multiplatform projects",
55
"main": "firebase-app.js",
66
"scripts": {
@@ -23,7 +23,7 @@
2323
},
2424
"homepage": "https://github.com/GitLiveApp/firebase-kotlin-sdk",
2525
"dependencies": {
26-
"@gitlive/firebase-common": "1.13.0",
26+
"@gitlive/firebase-common": "2.0.0",
2727
"firebase": "9.19.1",
2828
"kotlin": "1.8.20",
2929
"kotlinx-coroutines-core": "1.6.4"

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

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@ public actual typealias FirebaseTooManyRequestsException = com.google.firebase.F
1414

1515
public actual typealias FirebaseApiNotAvailableException = com.google.firebase.FirebaseApiNotAvailableException
1616

17+
public val FirebaseApp.android: com.google.firebase.FirebaseApp get() = android
18+
1719
public actual val Firebase.app: FirebaseApp
1820
get() = FirebaseApp(com.google.firebase.FirebaseApp.getInstance())
1921

@@ -29,7 +31,7 @@ public actual fun Firebase.initialize(context: Any?, options: FirebaseOptions, n
2931
public actual fun Firebase.initialize(context: Any?, options: FirebaseOptions): FirebaseApp =
3032
FirebaseApp(com.google.firebase.FirebaseApp.initializeApp(context as Context, options.toAndroid()))
3133

32-
public actual data class FirebaseApp internal constructor(val android: com.google.firebase.FirebaseApp) {
34+
public actual data class FirebaseApp internal constructor(internal val android: com.google.firebase.FirebaseApp) {
3335
actual val name: String
3436
get() = android.name
3537
actual val options: FirebaseOptions

0 commit comments

Comments
 (0)