如何在Kotlin中使用一个名为“val()”的函数? /扩展外部JS类

问题描述 投票:3回答:3

我在尝试使用Cloud Functions for Firebase和Kotlin时遇到了一个问题。

从数据库触发器访问数据时,您可以在Javascript中使用snapshot.val();函数。在Kotlin这是不可能的,因为val是Kotlin中的关键字。我设法通过使用来解决这个问题

snapshot.`val()`

这样我就可以在Kotlin中调用任何名字的函数。现在我觉得每次输入这个“严重的重音”(`)都很烦人,所以我试着创建一个扩展功能。

我的问题是我不知道如何引用该类型。在Javascript中,访问数据库时是DeltaSnapshotDataSnapshot

如何扩展外部类或如何通过其他名称调用它? Typealiases不起作用,因为它们仅限于类/而不是支持函数。

javascript node.js firebase kotlin google-cloud-functions
3个回答
3
投票

你试过跟随吗?

external class MyClass {
    @JsName("val")
    fun foo()
}

1
投票

在javascript中,类也是一个对象

snapshot['val']();

更通用

object[functionName]();

object[functionName].call(object, ...args);

object[functionName].apply(object, args);

0
投票

试试这个:

js("snapshot.val()").yourKotlinCode

这个对我有用

© www.soinside.com 2019 - 2024. All rights reserved.