Skip to content

Add storage with custom url #540

New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Merged
merged 2 commits into from
Jun 21, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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
Loading