【问题标题】:Firebase creating nested object on POSTFirebase 在 POST 上创建嵌套对象
【发布时间】:2020-07-07 20:13:14
【问题描述】:

我正在尝试使用 Micronaut 的 RxHTTP (1) 将宝​​藏 HTTP POST 到 Firebase 实时数据库(2)。

data class Treasure
(
    val treasureId : String? = null,

    val name : String,

    val description: String,

    val amount : Double,

    val lat : Double,

    val lng : Double
)
@Client("\${treauser.trasures.url}")
interface TreasureRepository : CreateTreasurePort
{
    @Post("/Treasure.json")
    override fun add(treasure : Treasure)
}

它会发布,但由于某种原因,它会将对象嵌套在 uuid 下。

我不希望宝藏在那里,我只想要 UID 下的所有五个属性。

1:docs.micronaut.io/latest/guide/httpClient.html#clientAnnotation 2:firebase.google.com/docs/reference/rest/database#section-post

【问题讨论】:

  • 您共享的代码似乎都没有向 Firebase 写入任何内容,或者至少不是以我熟悉的方式。您能否解释(或包含指向文档的链接)这是如何写入数据库的,以及如何将其转换为支持 API/SDK 或我们可以查看以了解它应该如何工作的包/库?
  • @FrankvanPuffelen@Client("\${treauser.trasures.url}") 从 Micronaut 中的 application.yaml 中提取 URL,我正在使用来自 Micronaut 的声明性 http 请求 api thttps:// docs.micronaut.io/latest/guide/httpClient.html#clientAnnotation.
  • 感谢您的澄清。您可能希望通过单击其下方的编辑链接将该信息放入您的问题中。我自己并不了解 Micronaut,但希望有这方面经验的人能够提供帮助。
  • @FrankvanPuffelen 这怎么可能是由于 CURL 使用 -X POST 发送数据引起的,我会更新问题

标签: firebase kotlin firebase-realtime-database micronaut


【解决方案1】:

通过添加@Body1注解解决。

@Client("\${treauser.trasures.url}")
interface TreasureRepository : CreateTreasurePort
{
    @Post("/Treasure.json")
    override fun add(@Body treasure : Treasure)
}

1:正文注释:https://docs.micronaut.io/latest/api/io/micronaut/http/annotation/Body.html

【讨论】:

    猜你喜欢
    • 2021-06-09
    • 1970-01-01
    • 1970-01-01
    • 2018-12-23
    • 1970-01-01
    • 2015-04-16
    • 1970-01-01
    • 1970-01-01
    • 2021-07-27
    相关资源
    最近更新 更多