From 918de3ae3c4b371cae3965471dab9497104b6746 Mon Sep 17 00:00:00 2001 From: Emily Ploszaj Date: Fri, 22 Nov 2024 15:11:05 -0600 Subject: [PATCH 1/6] Adjust Functions getters to be Kotlin source compatible --- .../com/google/firebase/functions/HttpsCallableResult.kt | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/firebase-functions/src/main/java/com/google/firebase/functions/HttpsCallableResult.kt b/firebase-functions/src/main/java/com/google/firebase/functions/HttpsCallableResult.kt index ddda0ea57bb..bddde384f8f 100644 --- a/firebase-functions/src/main/java/com/google/firebase/functions/HttpsCallableResult.kt +++ b/firebase-functions/src/main/java/com/google/firebase/functions/HttpsCallableResult.kt @@ -16,15 +16,12 @@ package com.google.firebase.functions /** The result of calling a HttpsCallableReference function. */ public class HttpsCallableResult internal constructor( // The actual result data, as generic types decoded from JSON. -private val data: Any?) { /** - * Returns the data that was returned from the Callable HTTPS trigger. + * The data that was returned from the Callable HTTPS trigger. * * The data is in the form of native Java objects. For example, if your trigger returned an array, * this object would be a List. If your trigger returned a JavaScript object with keys and * values, this object would be a Map. */ - public fun getData(): Any? { - return data - } -} + public val data: Any? +) {} From c41d81ed38b7ca38e689fa7219285bf20148a7d9 Mon Sep 17 00:00:00 2001 From: Emily Ploszaj Date: Mon, 25 Nov 2024 12:43:35 -0600 Subject: [PATCH 2/6] Resolve integration tests --- .../java/com/google/firebase/functions/CallTests.kt | 6 +++--- .../java/com/google/firebase/functions/ktx/CallTests.kt | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/firebase-functions/src/androidTest/java/com/google/firebase/functions/CallTests.kt b/firebase-functions/src/androidTest/java/com/google/firebase/functions/CallTests.kt index 66829a34a44..40dced599ba 100644 --- a/firebase-functions/src/androidTest/java/com/google/firebase/functions/CallTests.kt +++ b/firebase-functions/src/androidTest/java/com/google/firebase/functions/CallTests.kt @@ -64,7 +64,7 @@ class CallTests { ) var function = functions.getHttpsCallable("dataTest") - val actual = Tasks.await(function.call(input)).getData() + val actual = Tasks.await(function.call(input)).data assertThat(actual).isInstanceOf(Map::class.java) @Suppress("UNCHECKED_CAST") val map = actual as Map @@ -77,7 +77,7 @@ class CallTests { fun testNullDataCall() { val functions = Firebase.functions(app) var function = functions.getHttpsCallable("nullTest") - val actual = Tasks.await(function.call(null)).getData() + val actual = Tasks.await(function.call(null)).data assertThat(actual).isNull() } @@ -86,7 +86,7 @@ class CallTests { fun testEmptyDataCall() { val functions = Firebase.functions(app) var function = functions.getHttpsCallable("nullTest") - val actual = Tasks.await(function.call()).getData() + val actual = Tasks.await(function.call()).data assertThat(actual).isNull() } diff --git a/firebase-functions/src/androidTest/java/com/google/firebase/functions/ktx/CallTests.kt b/firebase-functions/src/androidTest/java/com/google/firebase/functions/ktx/CallTests.kt index 87ca19f8348..dae8690718d 100644 --- a/firebase-functions/src/androidTest/java/com/google/firebase/functions/ktx/CallTests.kt +++ b/firebase-functions/src/androidTest/java/com/google/firebase/functions/ktx/CallTests.kt @@ -64,7 +64,7 @@ class CallTests { ) var function = functions.getHttpsCallable("dataTest") - val actual = Tasks.await(function.call(input)).getData() + val actual = Tasks.await(function.call(input)).data assertThat(actual).isInstanceOf(Map::class.java) @Suppress("UNCHECKED_CAST") val map = actual as Map @@ -77,7 +77,7 @@ class CallTests { fun testNullDataCall() { val functions = Firebase.functions(app) var function = functions.getHttpsCallable("nullTest") - val actual = Tasks.await(function.call(null)).getData() + val actual = Tasks.await(function.call(null)).data assertThat(actual).isNull() } @@ -86,7 +86,7 @@ class CallTests { fun testEmptyDataCall() { val functions = Firebase.functions(app) var function = functions.getHttpsCallable("nullTest") - val actual = Tasks.await(function.call()).getData() + val actual = Tasks.await(function.call()).data assertThat(actual).isNull() } From 07ae7d7d06a47eec2e5102fa5877c18085318ae4 Mon Sep 17 00:00:00 2001 From: Emily Ploszaj Date: Mon, 25 Nov 2024 12:45:17 -0600 Subject: [PATCH 3/6] Changelog --- firebase-functions/CHANGELOG.md | 3 +++ firebase-functions/api.txt | 1 + 2 files changed, 4 insertions(+) diff --git a/firebase-functions/CHANGELOG.md b/firebase-functions/CHANGELOG.md index eb6c565a42b..26c83870573 100644 --- a/firebase-functions/CHANGELOG.md +++ b/firebase-functions/CHANGELOG.md @@ -1,4 +1,7 @@ # Unreleased +* [fixed] Fixed HttpsCallableResult.data resolution in Kotlin + +# 21.1.0 * [changed] Migrated to Kotlin # 21.0.0 diff --git a/firebase-functions/api.txt b/firebase-functions/api.txt index 8b663f00cbb..cd3494a99d3 100644 --- a/firebase-functions/api.txt +++ b/firebase-functions/api.txt @@ -110,6 +110,7 @@ package com.google.firebase.functions { public final class HttpsCallableResult { method @Nullable public Object getData(); + property @Nullable public final Object data; } public final class Serializer { From d0f9af682d27a8ed3115caafe36dbe183d4a1fa6 Mon Sep 17 00:00:00 2001 From: Emily Ploszaj Date: Mon, 25 Nov 2024 14:38:57 -0600 Subject: [PATCH 4/6] Use proper annotations --- .../google/firebase/functions/CallTests.kt | 6 +++--- .../firebase/functions/HttpsCallableResult.kt | 19 +++++++++++++++---- 2 files changed, 18 insertions(+), 7 deletions(-) diff --git a/firebase-functions/src/androidTest/java/com/google/firebase/functions/CallTests.kt b/firebase-functions/src/androidTest/java/com/google/firebase/functions/CallTests.kt index 40dced599ba..66829a34a44 100644 --- a/firebase-functions/src/androidTest/java/com/google/firebase/functions/CallTests.kt +++ b/firebase-functions/src/androidTest/java/com/google/firebase/functions/CallTests.kt @@ -64,7 +64,7 @@ class CallTests { ) var function = functions.getHttpsCallable("dataTest") - val actual = Tasks.await(function.call(input)).data + val actual = Tasks.await(function.call(input)).getData() assertThat(actual).isInstanceOf(Map::class.java) @Suppress("UNCHECKED_CAST") val map = actual as Map @@ -77,7 +77,7 @@ class CallTests { fun testNullDataCall() { val functions = Firebase.functions(app) var function = functions.getHttpsCallable("nullTest") - val actual = Tasks.await(function.call(null)).data + val actual = Tasks.await(function.call(null)).getData() assertThat(actual).isNull() } @@ -86,7 +86,7 @@ class CallTests { fun testEmptyDataCall() { val functions = Firebase.functions(app) var function = functions.getHttpsCallable("nullTest") - val actual = Tasks.await(function.call()).data + val actual = Tasks.await(function.call()).getData() assertThat(actual).isNull() } diff --git a/firebase-functions/src/main/java/com/google/firebase/functions/HttpsCallableResult.kt b/firebase-functions/src/main/java/com/google/firebase/functions/HttpsCallableResult.kt index bddde384f8f..084372b10d1 100644 --- a/firebase-functions/src/main/java/com/google/firebase/functions/HttpsCallableResult.kt +++ b/firebase-functions/src/main/java/com/google/firebase/functions/HttpsCallableResult.kt @@ -20,8 +20,19 @@ internal constructor( // The actual result data, as generic types decoded from J * The data that was returned from the Callable HTTPS trigger. * * The data is in the form of native Java objects. For example, if your trigger returned an array, - * this object would be a List. If your trigger returned a JavaScript object with keys and - * values, this object would be a Map. + * this object would be a `List`. If your trigger returned a JavaScript object with keys and + * values, this object would be a `Map`. */ - public val data: Any? -) {} + @JvmField public val data: Any? +) { + /** + * Returns the data that was returned from the Callable HTTPS trigger. + * + * The data is in the form of native Java objects. For example, if your trigger returned an array, + * this object would be a `List`. If your trigger returned a JavaScript object with keys and + * values, this object would be a `Map`. + */ + public fun getData(): Any? { + return data + } +} From d5c0b8390485845996e815074ac3e07541c1d4b0 Mon Sep 17 00:00:00 2001 From: Emily Ploszaj Date: Mon, 25 Nov 2024 14:39:17 -0600 Subject: [PATCH 5/6] Format --- .../com/google/firebase/functions/HttpsCallableResult.kt | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/firebase-functions/src/main/java/com/google/firebase/functions/HttpsCallableResult.kt b/firebase-functions/src/main/java/com/google/firebase/functions/HttpsCallableResult.kt index 084372b10d1..19fec093d2d 100644 --- a/firebase-functions/src/main/java/com/google/firebase/functions/HttpsCallableResult.kt +++ b/firebase-functions/src/main/java/com/google/firebase/functions/HttpsCallableResult.kt @@ -20,8 +20,8 @@ internal constructor( // The actual result data, as generic types decoded from J * The data that was returned from the Callable HTTPS trigger. * * The data is in the form of native Java objects. For example, if your trigger returned an array, - * this object would be a `List`. If your trigger returned a JavaScript object with keys and - * values, this object would be a `Map`. + * this object would be a `List`. If your trigger returned a JavaScript object with keys + * and values, this object would be a `Map`. */ @JvmField public val data: Any? ) { @@ -29,8 +29,8 @@ internal constructor( // The actual result data, as generic types decoded from J * Returns the data that was returned from the Callable HTTPS trigger. * * The data is in the form of native Java objects. For example, if your trigger returned an array, - * this object would be a `List`. If your trigger returned a JavaScript object with keys and - * values, this object would be a `Map`. + * this object would be a `List`. If your trigger returned a JavaScript object with keys + * and values, this object would be a `Map`. */ public fun getData(): Any? { return data From 2b45c16043daf2b60b2fa34284c6a5abbbf1706b Mon Sep 17 00:00:00 2001 From: Emily Ploszaj Date: Mon, 25 Nov 2024 15:06:51 -0600 Subject: [PATCH 6/6] Api text file --- firebase-functions/api.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/firebase-functions/api.txt b/firebase-functions/api.txt index cd3494a99d3..323ba72e22f 100644 --- a/firebase-functions/api.txt +++ b/firebase-functions/api.txt @@ -110,7 +110,7 @@ package com.google.firebase.functions { public final class HttpsCallableResult { method @Nullable public Object getData(); - property @Nullable public final Object data; + field @Nullable public final Object data; } public final class Serializer {