Skip to content

Commit 26aa3d7

Browse files
committedOct 3, 2023
add details to FirebaseFunctionsException
1 parent f4532f7 commit 26aa3d7

File tree

7 files changed

+43
-36
lines changed

7 files changed

+43
-36
lines changed
 

‎firebase-app/package.json

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@gitlive/firebase-app",
3-
"version": "1.10.1",
3+
"version": "1.10.2",
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.10.1",
26+
"@gitlive/firebase-common": "1.10.2",
2727
"firebase": "9.19.1",
2828
"kotlin": "1.8.20",
2929
"kotlinx-coroutines-core": "1.6.4"

‎firebase-database/src/androidMain/kotlin/dev/gitlive/firebase/database/database.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ suspend fun <T> Task<T>.awaitWhileOnline(): T =
3030
.reference(".info/connected")
3131
.valueEvents
3232
.debounce(2.seconds)
33-
.filter { !it.value<Boolean>() }
33+
.filterNot { it.value<Boolean>() }
3434
.map<DataSnapshot, T> { throw DatabaseException("Database not connected", null) }
3535
)
3636
.first()

‎firebase-functions/src/androidMain/kotlin/dev/gitlive/firebase/functions/functions.kt

+2
Original file line numberDiff line numberDiff line change
@@ -55,5 +55,7 @@ actual typealias FirebaseFunctionsException = com.google.firebase.functions.Fire
5555

5656
actual val FirebaseFunctionsException.code: FunctionsExceptionCode get() = code
5757

58+
actual val FirebaseFunctionsException.details: Any? get() = details
59+
5860
actual typealias FunctionsExceptionCode = com.google.firebase.functions.FirebaseFunctionsException.Code
5961

‎firebase-functions/src/commonMain/kotlin/dev/gitlive/firebase/functions/functions.kt

+3
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,9 @@ expect class FirebaseFunctionsException: FirebaseException
4343
@Suppress("EXTENSION_SHADOWED_BY_MEMBER")
4444
expect val FirebaseFunctionsException.code: FunctionsExceptionCode
4545

46+
@Suppress("EXTENSION_SHADOWED_BY_MEMBER")
47+
expect val FirebaseFunctionsException.details: Any?
48+
4649
expect enum class FunctionsExceptionCode {
4750
OK,
4851
CANCELLED,

‎firebase-functions/src/iosMain/kotlin/dev/gitlive/firebase/functions/functions.kt

+4-3
Original file line numberDiff line numberDiff line change
@@ -56,11 +56,12 @@ actual class HttpsCallableResult constructor(val ios: FIRHTTPSCallableResult) {
5656
decode(strategy, ios.data())
5757
}
5858

59-
actual class FirebaseFunctionsException(message: String, val code: FunctionsExceptionCode) : FirebaseException(message)
59+
actual class FirebaseFunctionsException(message: String, val code: FunctionsExceptionCode, val details: Any?) : FirebaseException(message)
6060

61-
@Suppress("EXTENSION_SHADOWED_BY_MEMBER")
6261
actual val FirebaseFunctionsException.code: FunctionsExceptionCode get() = code
6362

63+
actual val FirebaseFunctionsException.details: Any? get() = details
64+
6465
actual enum class FunctionsExceptionCode {
6566
OK,
6667
CANCELLED,
@@ -103,7 +104,7 @@ fun NSError.toException() = when(domain) {
103104
// else -> FunctionsExceptionCode.UNKNOWN
104105
// }
105106
else -> FunctionsExceptionCode.UNKNOWN
106-
}.let { FirebaseFunctionsException(description!!, it) }
107+
}.let { FirebaseFunctionsException(description!!, it, null/*userInfo[FIRFunctionsErrorDetails]*/) }
107108

108109
suspend inline fun <T> T.await(function: T.(callback: (NSError?) -> Unit) -> Unit) {
109110
val job = CompletableDeferred<Unit>()

‎firebase-functions/src/jsMain/kotlin/dev/gitlive/firebase/functions/functions.kt

+20-19
Original file line numberDiff line numberDiff line change
@@ -54,11 +54,12 @@ actual class HttpsCallableResult constructor(val js: JsHttpsCallableResult) {
5454

5555
}
5656

57-
actual class FirebaseFunctionsException(cause: Throwable, val code: FunctionsExceptionCode) : FirebaseException(code.toString(), cause)
57+
actual class FirebaseFunctionsException(cause: Throwable, val code: FunctionsExceptionCode, val details: Any?) : FirebaseException(cause.message, cause)
5858

59-
@Suppress("EXTENSION_SHADOWED_BY_MEMBER")
6059
actual val FirebaseFunctionsException.code: FunctionsExceptionCode get() = code
6160

61+
actual val FirebaseFunctionsException.details: Any? get() = details
62+
6263
actual enum class FunctionsExceptionCode {
6364
OK,
6465
CANCELLED,
@@ -96,25 +97,25 @@ fun errorToException(e: dynamic) = (e?.code ?: e?.message ?: "")
9697
.lowercase()
9798
.let {
9899
when {
99-
"cancelled" in it -> FirebaseFunctionsException(e, FunctionsExceptionCode.CANCELLED)
100-
"invalid-argument" in it -> FirebaseFunctionsException(e, FunctionsExceptionCode.INVALID_ARGUMENT)
101-
"deadline-exceeded" in it -> FirebaseFunctionsException(e, FunctionsExceptionCode.DEADLINE_EXCEEDED)
102-
"not-found" in it -> FirebaseFunctionsException(e, FunctionsExceptionCode.NOT_FOUND)
103-
"already-exists" in it -> FirebaseFunctionsException(e, FunctionsExceptionCode.ALREADY_EXISTS)
104-
"permission-denied" in it -> FirebaseFunctionsException(e, FunctionsExceptionCode.PERMISSION_DENIED)
105-
"resource-exhausted" in it -> FirebaseFunctionsException(e, FunctionsExceptionCode.RESOURCE_EXHAUSTED)
106-
"failed-precondition" in it -> FirebaseFunctionsException(e, FunctionsExceptionCode.FAILED_PRECONDITION)
107-
"aborted" in it -> FirebaseFunctionsException(e, FunctionsExceptionCode.ABORTED)
108-
"out-of-range" in it -> FirebaseFunctionsException(e, FunctionsExceptionCode.OUT_OF_RANGE)
109-
"unimplemented" in it -> FirebaseFunctionsException(e, FunctionsExceptionCode.UNIMPLEMENTED)
110-
"internal" in it -> FirebaseFunctionsException(e, FunctionsExceptionCode.INTERNAL)
111-
"unavailable" in it -> FirebaseFunctionsException(e, FunctionsExceptionCode.UNAVAILABLE)
112-
"data-loss" in it -> FirebaseFunctionsException(e, FunctionsExceptionCode.DATA_LOSS)
113-
"unauthenticated" in it -> FirebaseFunctionsException(e, FunctionsExceptionCode.UNAUTHENTICATED)
114-
"unknown" in it -> FirebaseFunctionsException(e, FunctionsExceptionCode.UNKNOWN)
100+
"cancelled" in it -> FirebaseFunctionsException(e, FunctionsExceptionCode.CANCELLED, e.details)
101+
"invalid-argument" in it -> FirebaseFunctionsException(e, FunctionsExceptionCode.INVALID_ARGUMENT, e.details)
102+
"deadline-exceeded" in it -> FirebaseFunctionsException(e, FunctionsExceptionCode.DEADLINE_EXCEEDED, e.details)
103+
"not-found" in it -> FirebaseFunctionsException(e, FunctionsExceptionCode.NOT_FOUND, e.details)
104+
"already-exists" in it -> FirebaseFunctionsException(e, FunctionsExceptionCode.ALREADY_EXISTS, e.details)
105+
"permission-denied" in it -> FirebaseFunctionsException(e, FunctionsExceptionCode.PERMISSION_DENIED, e.details)
106+
"resource-exhausted" in it -> FirebaseFunctionsException(e, FunctionsExceptionCode.RESOURCE_EXHAUSTED, e.details)
107+
"failed-precondition" in it -> FirebaseFunctionsException(e, FunctionsExceptionCode.FAILED_PRECONDITION, e.details)
108+
"aborted" in it -> FirebaseFunctionsException(e, FunctionsExceptionCode.ABORTED, e.details)
109+
"out-of-range" in it -> FirebaseFunctionsException(e, FunctionsExceptionCode.OUT_OF_RANGE, e.details)
110+
"unimplemented" in it -> FirebaseFunctionsException(e, FunctionsExceptionCode.UNIMPLEMENTED, e.details)
111+
"internal" in it -> FirebaseFunctionsException(e, FunctionsExceptionCode.INTERNAL, e.details)
112+
"unavailable" in it -> FirebaseFunctionsException(e, FunctionsExceptionCode.UNAVAILABLE, e.details)
113+
"data-loss" in it -> FirebaseFunctionsException(e, FunctionsExceptionCode.DATA_LOSS, e.details)
114+
"unauthenticated" in it -> FirebaseFunctionsException(e, FunctionsExceptionCode.UNAUTHENTICATED, e.details)
115+
"unknown" in it -> FirebaseFunctionsException(e, FunctionsExceptionCode.UNKNOWN, e.details)
115116
else -> {
116117
println("Unknown error code in ${JSON.stringify(e)}")
117-
FirebaseFunctionsException(e, FunctionsExceptionCode.UNKNOWN)
118+
FirebaseFunctionsException(e, FunctionsExceptionCode.UNKNOWN, e.details)
118119
}
119120
}
120121
}

‎gradle.properties

+11-11
Original file line numberDiff line numberDiff line change
@@ -49,14 +49,14 @@ firebase-perf.skipJsTests=false
4949
firebase-storage.skipJsTests=false
5050

5151
# Versions:
52-
firebase-app.version=1.10.2
53-
firebase-auth.version=1.10.2
54-
firebase-common.version=1.10.2
55-
firebase-config.version=1.10.2
56-
firebase-database.version=1.10.2
57-
firebase-firestore.version=1.10.2
58-
firebase-functions.version=1.10.2
59-
firebase-installations.version=1.10.2
60-
firebase-perf.version=1.10.2
61-
firebase-crashlytics.version=1.10.2
62-
firebase-storage.version=1.10.2
52+
firebase-app.version=1.10.3
53+
firebase-auth.version=1.10.3
54+
firebase-common.version=1.10.3
55+
firebase-config.version=1.10.3
56+
firebase-database.version=1.10.3
57+
firebase-firestore.version=1.10.3
58+
firebase-functions.version=1.10.3
59+
firebase-installations.version=1.10.3
60+
firebase-perf.version=1.10.3
61+
firebase-crashlytics.version=1.10.3
62+
firebase-storage.version=1.10.3

0 commit comments

Comments
 (0)
Failed to load comments.