Skip to content

Commit e54c12e

Browse files
authored
Merge pull request #540 from deBasMan21/feat/StorageWithUrl
Add storage with custom url
2 parents 8e900e8 + e0ebbce commit e54c12e

File tree

6 files changed

+32
-9
lines changed

6 files changed

+32
-9
lines changed

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

+6-4
Original file line numberDiff line numberDiff line change
@@ -26,11 +26,13 @@ import kotlinx.coroutines.flow.first
2626
import kotlinx.coroutines.launch
2727
import kotlinx.coroutines.tasks.await
2828

29-
actual val Firebase.storage get() =
30-
FirebaseStorage(com.google.firebase.storage.FirebaseStorage.getInstance())
29+
actual val Firebase.storage get() = FirebaseStorage(com.google.firebase.storage.FirebaseStorage.getInstance())
3130

32-
actual fun Firebase.storage(app: FirebaseApp) =
33-
FirebaseStorage(com.google.firebase.storage.FirebaseStorage.getInstance(app.android))
31+
actual fun Firebase.storage(url: String): FirebaseStorage = FirebaseStorage(com.google.firebase.storage.FirebaseStorage.getInstance(url))
32+
33+
actual fun Firebase.storage(app: FirebaseApp) = FirebaseStorage(com.google.firebase.storage.FirebaseStorage.getInstance(app.android))
34+
35+
actual fun Firebase.storage(app: FirebaseApp, url: String) = FirebaseStorage(com.google.firebase.storage.FirebaseStorage.getInstance(app.android, url))
3436

3537
actual class FirebaseStorage(val android: com.google.firebase.storage.FirebaseStorage) {
3638
actual val maxOperationRetryTimeMillis = android.maxOperationRetryTimeMillis

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

+6
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,15 @@ import kotlinx.coroutines.launch
1111
/** Returns the [FirebaseStorage] instance of the default [FirebaseApp]. */
1212
expect val Firebase.storage: FirebaseStorage
1313

14+
/** Returns the [FirebaseStorage] instance of the default [FirebaseApp]. */
15+
expect fun Firebase.storage(url: String): FirebaseStorage
16+
1417
/** Returns the [FirebaseStorage] instance of a given [FirebaseApp]. */
1518
expect fun Firebase.storage(app: FirebaseApp): FirebaseStorage
1619

20+
/** Returns the [FirebaseStorage] instance of a given [FirebaseApp]. */
21+
expect fun Firebase.storage(app: FirebaseApp, url: String): FirebaseStorage
22+
1723
/**
1824
* FirebaseStorage is a service that supports uploading and downloading large objects to Google
1925
* Cloud Storage. Pass a custom instance of [FirebaseApp] to [Firebase.storage]

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

+8
Original file line numberDiff line numberDiff line change
@@ -31,10 +31,18 @@ import platform.Foundation.NSURL
3131
actual val Firebase.storage get() =
3232
FirebaseStorage(FIRStorage.storage())
3333

34+
actual fun Firebase.storage(url: String): FirebaseStorage = FirebaseStorage(
35+
FIRStorage.storageWithURL(url)
36+
)
37+
3438
actual fun Firebase.storage(app: FirebaseApp): FirebaseStorage = FirebaseStorage(
3539
FIRStorage.storageForApp(app.ios as objcnames.classes.FIRApp)
3640
)
3741

42+
actual fun Firebase.storage(app: FirebaseApp, url: String) = FirebaseStorage(
43+
FIRStorage.storageForApp(app.ios as objcnames.classes.FIRApp, url)
44+
)
45+
3846
actual class FirebaseStorage(val ios: FIRStorage) {
3947
actual val maxOperationRetryTimeMillis = ios.maxOperationRetryTime().toLong()
4048
actual val maxUploadRetryTimeMillis = ios.maxUploadRetryTime().toLong()

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

+2
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ package dev.gitlive.firebase.storage.externals
66
import dev.gitlive.firebase.externals.FirebaseApp
77
import kotlin.js.Promise
88

9+
external fun getStorage(app: FirebaseApp? = definedExternally, url: String): FirebaseStorage
10+
911
external fun getStorage(app: FirebaseApp? = definedExternally): FirebaseStorage
1012

1113
external fun ref(storage: FirebaseStorage, url: String? = definedExternally): StorageReference

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

+5-2
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,11 @@ import kotlinx.coroutines.flow.emitAll
1818
actual val Firebase.storage
1919
get() = FirebaseStorage(getStorage())
2020

21-
actual fun Firebase.storage(app: FirebaseApp) =
22-
FirebaseStorage(getStorage(app.js))
21+
actual fun Firebase.storage(url: String): FirebaseStorage = FirebaseStorage(getStorage(null, url), )
22+
23+
actual fun Firebase.storage(app: FirebaseApp) = FirebaseStorage(getStorage(app.js))
24+
25+
actual fun Firebase.storage(app: FirebaseApp, url: String) = FirebaseStorage(getStorage(app.js, url))
2326

2427
actual class FirebaseStorage(val js: dev.gitlive.firebase.storage.externals.FirebaseStorage) {
2528
actual val maxOperationRetryTimeMillis = js.maxOperationRetryTime.toLong()

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

+5-3
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,12 @@ import dev.gitlive.firebase.FirebaseException
88
actual val Firebase.storage: FirebaseStorage
99
get() = TODO("Not yet implemented")
1010

11+
actual fun Firebase.storage(url: String): FirebaseStorage = TODO("Not yet implemented")
12+
1113
/** Returns the [FirebaseStorage] instance of a given [FirebaseApp]. */
12-
actual fun Firebase.storage(app: FirebaseApp): FirebaseStorage {
13-
TODO("Not yet implemented")
14-
}
14+
actual fun Firebase.storage(app: FirebaseApp): FirebaseStorage = TODO("Not yet implemented")
15+
16+
actual fun Firebase.storage(app: FirebaseApp, url: String): FirebaseStorage = TODO("Not yet implemented")
1517

1618
actual class FirebaseStorage {
1719
actual val maxOperationRetryTimeMillis: Long

0 commit comments

Comments
 (0)