如何从 Android 调用 Java/Kotlin GCP 云函数

Posted

技术标签:

【中文标题】如何从 Android 调用 Java/Kotlin GCP 云函数【英文标题】:How to call Java/Kotlin GCP Cloud Functions from Android 【发布时间】:2021-10-25 09:58:13 【问题描述】:

我在 kotlin 中编写了一个 http 函数。从 GCP 测试时它工作正常。相同的几行是:

class WinnerDeclaration : HttpFunction 
   override fun service(request: HttpRequest?, response: HttpResponse?) 
   //code ...
   

参考https://firebase.google.com/docs/functions/callable#call_the_function后,我写了这段代码:

private val cloudFunctions = FirebaseFunctions.getInstance()
val data = hashMapOf("uid" to uid)
cloudFunctions
  .getHttpsCallable("WinnerDeclaration")
  .call(data)
  .addOnSuccessListener 
    //code ...
  .addOnFailureListener 
    it.printStackTrace()
  

但我总是遇到这个异常: com.google.firebase.functions.FirebaseFunctionsException: NOT_FOUND

【问题讨论】:

如果你熟悉 HTTP 请求,你可以使用 volley 或 retrofit 【参考方案1】:

callable Cloud Functions 使用的onCall 协议仅适用于 Node.js/Firebase Functions SDK。 Google Cloud Functions 支持的任何其他服务器端库都没有实现。

因此,如果您想使用用 Java/Kotlin 编写的可调用 Cloud Functions,您必须自己实现 onCall protocol 的服务器端版本。

【讨论】:

以上是关于如何从 Android 调用 Java/Kotlin GCP 云函数的主要内容,如果未能解决你的问题,请参考以下文章

如何从android中的非Activity类调用服务方法

如何从应用程序调用 Android 计算器

如何从 Android 移动应用程序调用本地 Web 服务

如何从Android中没有活动和片段的函数调用DialogFragment?

你如何从android客户端调用远程servlet?

如何从 android 调用 RESTful Web 服务?