Skip to content

Commit 9464afc

Browse files
committed
Added get reference from url
1 parent fde1e95 commit 9464afc

File tree

5 files changed

+20
-0
lines changed
  • firebase-storage/src
    • androidMain/kotlin/dev/gitlive/firebase/storage
    • commonMain/kotlin/dev/gitlive/firebase/storage
    • iosMain/kotlin/dev/gitlive/firebase/storage
    • jsMain/kotlin/dev/gitlive/firebase/storage
    • jvmMain/kotlin/dev/gitlive/firebase/storage

5 files changed

+20
-0
lines changed

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

+2
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,8 @@ public actual class FirebaseStorage(internal val android: com.google.firebase.st
5555
public actual val reference: StorageReference get() = StorageReference(android.reference)
5656

5757
public actual fun reference(location: String): StorageReference = StorageReference(android.getReference(location))
58+
59+
public actual fun getReferenceFromUrl(fullUrl: String): StorageReference = StorageReference(android.getReferenceFromUrl(fullUrl))
5860
}
5961

6062
public val StorageReference.android: com.google.firebase.storage.StorageReference get() = android

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

+10
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,16 @@ public expect class FirebaseStorage {
8686
* @return An instance of [StorageReference] at the given child path.
8787
*/
8888
public fun reference(location: String): StorageReference
89+
90+
/**
91+
* Creates a [StorageReference] given a gs:// or https:// URL pointing to a Firebase Storage location.
92+
*
93+
* @param fullUrl A gs:// or http[s]:// URL used to initialize the reference. For example, you can pass
94+
* in a download URL retrieved from getDownloadUrl or the uri retrieved from toString An error is
95+
* thrown if fullUrl is not associated with the FirebaseApp used to initialize this FirebaseStorage.
96+
* @return An instance of [StorageReference] at the given url.
97+
*/
98+
public fun getReferenceFromUrl(fullUrl: String): StorageReference
8999
}
90100

91101
@Deprecated("Deprecated to use Kotlin Duration", replaceWith = ReplaceWith("maxOperationRetryTime"))

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

+2
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,8 @@ public actual class FirebaseStorage(internal val ios: FIRStorage) {
6767
public actual val reference: StorageReference get() = StorageReference(ios.reference())
6868

6969
public actual fun reference(location: String): StorageReference = StorageReference(ios.referenceWithPath(location))
70+
71+
public actual fun getReferenceFromUrl(fullUrl: String): StorageReference = StorageReference(ios.referenceForURL(fullUrl))
7072
}
7173

7274
public val StorageReference.ios: FIRStorageReference get() = ios

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

+2
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,8 @@ public actual class FirebaseStorage(internal val js: dev.gitlive.firebase.storag
5151
public actual val reference: StorageReference get() = StorageReference(ref(js))
5252

5353
public actual fun reference(location: String): StorageReference = rethrow { StorageReference(ref(js, location)) }
54+
55+
public actual fun getReferenceFromUrl(fullUrl: String): StorageReference = rethrow { StorageReference(ref(js, fullUrl)) }
5456
}
5557

5658
public val StorageReference.js get() = js

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

+4
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,10 @@ public actual class FirebaseStorage {
3737
public actual fun reference(location: String): StorageReference {
3838
TODO("Not yet implemented")
3939
}
40+
41+
public actual fun getReferenceFromUrl(fullUrl: String): StorageReference {
42+
TODO("Not yet implemented")
43+
}
4044
}
4145

4246
public actual class StorageReference {

0 commit comments

Comments
 (0)