首页 > 解决方案 > Firebase 在 POST 上创建嵌套对象

问题描述

我正在尝试使用 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

标签: firebasekotlinfirebase-realtime-databasemicronaut

解决方案


通过添加@Body 1注释解决。

@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


推荐阅读