Skip to content

Commit

Permalink
Merge pull request #540 from deBasMan21/feat/StorageWithUrl
Browse files Browse the repository at this point in the history
Add storage with custom url
  • Loading branch information
nbransby authored Jun 21, 2024
2 parents 8e900e8 + e0ebbce commit e54c12e
Show file tree
Hide file tree
Showing 6 changed files with 32 additions and 9 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -26,11 +26,13 @@ import kotlinx.coroutines.flow.first
import kotlinx.coroutines.launch
import kotlinx.coroutines.tasks.await

actual val Firebase.storage get() =
FirebaseStorage(com.google.firebase.storage.FirebaseStorage.getInstance())
actual val Firebase.storage get() = FirebaseStorage(com.google.firebase.storage.FirebaseStorage.getInstance())

actual fun Firebase.storage(app: FirebaseApp) =
FirebaseStorage(com.google.firebase.storage.FirebaseStorage.getInstance(app.android))
actual fun Firebase.storage(url: String): FirebaseStorage = FirebaseStorage(com.google.firebase.storage.FirebaseStorage.getInstance(url))

actual fun Firebase.storage(app: FirebaseApp) = FirebaseStorage(com.google.firebase.storage.FirebaseStorage.getInstance(app.android))

actual fun Firebase.storage(app: FirebaseApp, url: String) = FirebaseStorage(com.google.firebase.storage.FirebaseStorage.getInstance(app.android, url))

actual class FirebaseStorage(val android: com.google.firebase.storage.FirebaseStorage) {
actual val maxOperationRetryTimeMillis = android.maxOperationRetryTimeMillis
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,15 @@ import kotlinx.coroutines.launch
/** Returns the [FirebaseStorage] instance of the default [FirebaseApp]. */
expect val Firebase.storage: FirebaseStorage

/** Returns the [FirebaseStorage] instance of the default [FirebaseApp]. */
expect fun Firebase.storage(url: String): FirebaseStorage

/** Returns the [FirebaseStorage] instance of a given [FirebaseApp]. */
expect fun Firebase.storage(app: FirebaseApp): FirebaseStorage

/** Returns the [FirebaseStorage] instance of a given [FirebaseApp]. */
expect fun Firebase.storage(app: FirebaseApp, url: String): FirebaseStorage

/**
* FirebaseStorage is a service that supports uploading and downloading large objects to Google
* Cloud Storage. Pass a custom instance of [FirebaseApp] to [Firebase.storage]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,10 +31,18 @@ import platform.Foundation.NSURL
actual val Firebase.storage get() =
FirebaseStorage(FIRStorage.storage())

actual fun Firebase.storage(url: String): FirebaseStorage = FirebaseStorage(
FIRStorage.storageWithURL(url)
)

actual fun Firebase.storage(app: FirebaseApp): FirebaseStorage = FirebaseStorage(
FIRStorage.storageForApp(app.ios as objcnames.classes.FIRApp)
)

actual fun Firebase.storage(app: FirebaseApp, url: String) = FirebaseStorage(
FIRStorage.storageForApp(app.ios as objcnames.classes.FIRApp, url)
)

actual class FirebaseStorage(val ios: FIRStorage) {
actual val maxOperationRetryTimeMillis = ios.maxOperationRetryTime().toLong()
actual val maxUploadRetryTimeMillis = ios.maxUploadRetryTime().toLong()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@ package dev.gitlive.firebase.storage.externals
import dev.gitlive.firebase.externals.FirebaseApp
import kotlin.js.Promise

external fun getStorage(app: FirebaseApp? = definedExternally, url: String): FirebaseStorage

external fun getStorage(app: FirebaseApp? = definedExternally): FirebaseStorage

external fun ref(storage: FirebaseStorage, url: String? = definedExternally): StorageReference
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,11 @@ import kotlinx.coroutines.flow.emitAll
actual val Firebase.storage
get() = FirebaseStorage(getStorage())

actual fun Firebase.storage(app: FirebaseApp) =
FirebaseStorage(getStorage(app.js))
actual fun Firebase.storage(url: String): FirebaseStorage = FirebaseStorage(getStorage(null, url), )

actual fun Firebase.storage(app: FirebaseApp) = FirebaseStorage(getStorage(app.js))

actual fun Firebase.storage(app: FirebaseApp, url: String) = FirebaseStorage(getStorage(app.js, url))

actual class FirebaseStorage(val js: dev.gitlive.firebase.storage.externals.FirebaseStorage) {
actual val maxOperationRetryTimeMillis = js.maxOperationRetryTime.toLong()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,12 @@ import dev.gitlive.firebase.FirebaseException
actual val Firebase.storage: FirebaseStorage
get() = TODO("Not yet implemented")

actual fun Firebase.storage(url: String): FirebaseStorage = TODO("Not yet implemented")

/** Returns the [FirebaseStorage] instance of a given [FirebaseApp]. */
actual fun Firebase.storage(app: FirebaseApp): FirebaseStorage {
TODO("Not yet implemented")
}
actual fun Firebase.storage(app: FirebaseApp): FirebaseStorage = TODO("Not yet implemented")

actual fun Firebase.storage(app: FirebaseApp, url: String): FirebaseStorage = TODO("Not yet implemented")

actual class FirebaseStorage {
actual val maxOperationRetryTimeMillis: Long
Expand Down

0 comments on commit e54c12e

Please sign in to comment.