我在尝试将云功能用于 kotlin 的firebase时遇到了一个问题。
从数据库触发器访问数据时您在 javascript 中使用snapshot.val();
函数。在 kotlin 中,这是不是,因为 val
是 kotlin 中的关键字。我通过使用
snapshot.`val()`
这样,我可以在 kotlin中使用任何名称调用函数。现在,我认为每次键入"严重的口音"(`)确实很烦人,所以我尝试创建一个扩展功能。
我的问题是我不知道如何参考类型。在 javascript 访问数据库时是DeltaSnapshot
或DataSnapshot
。
如何扩展外部类,或者如何通过其他名称调用它?typealiases不起作用,因为它们仅限于课程/而不是支持功能。
您是否尝试关注?
external class MyClass {
@JsName("val")
fun foo()
}
在JavaScript中,类是一个对象aswell
snapshot['val']();
更多通用
object[functionName]();
object[functionName].call(object, ...args);
object[functionName].apply(object, args);
尝试以下:
js("snapshot.val()").yourKotlinCode
它对我有用