首页 > 解决方案 > 如何从 Android 调用 Java/Kotlin GCP 云函数

问题描述

我在 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

标签: javaandroidfirebasekotlingoogle-cloud-functions

解决方案


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

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


推荐阅读