我在尝试使用Cloud Functions for Firebase和Kotlin时遇到了一个问题。
从数据库触发器访问数据时,您可以在Javascript中使用snapshot.val();
函数。在Kotlin这是不可能的,因为val
是Kotlin中的关键字。我设法通过使用来解决这个问题
snapshot.`val()`
这样我就可以在Kotlin中调用任何名字的函数。现在我觉得每次输入这个“严重的重音”(`)都很烦人,所以我试着创建一个扩展功能。
我的问题是我不知道如何引用该类型。在Javascript中,访问数据库时是DeltaSnapshot
或DataSnapshot
。
如何扩展外部类或如何通过其他名称调用它? Typealiases不起作用,因为它们仅限于类/而不是支持函数。
你试过跟随吗?
external class MyClass {
@JsName("val")
fun foo()
}
在javascript中,类也是一个对象
snapshot['val']();
更通用
object[functionName]();
object[functionName].call(object, ...args);
object[functionName].apply(object, args);
试试这个:
js("snapshot.val()").yourKotlinCode
这个对我有用