如何为 Firebase 实时数据库的发布请求设置我的孩子名。我使用 ktor 2.3.9,我可以发出 post 请求,但是当我这样做时,发送的信息会破坏 firebase Json,并且我无法使用此 json 文件中的数据。 ApiRoutes.SEARCH_USER 是到我的数据库的链接。 User 是可序列化的数据类。它包含登录名、名字、姓氏、父名和密码。
这是我的第一个版本发布请求发布请求。
suspend fun postUser(
id:Int,
login: String,
firstname: String,
lastname: String,
patronymic: String,
passwordNewUser: String
) {
client.post(ApiRoutes.SEARCH_USER) {
contentType(ContentType.Application.Json)
setBody(User(login, firstname, lastname, patronymic, passwordNewUser))
}
}
在我找到这个版本之前,但是这个版本不能解决我的问题,但是这个 make suctur 是我想要的。
suspend fun postUser(
id:Int,
login: String,
firstname: String,
lastname: String,
patronymic: String,
passwordNewUser: String
){
client.post(ApiRoutes.SEARCH_USER)
{
val file = User(login, lastname, firstname, patronymic, passwordNewUser)
contentType(ContentType.Application.Json)
var jsonchik = Json.encodeToJsonElement(mapOf("${id}" to file))
headers{
append(HttpHeaders.PublicKeyPins, "${id}")
}
setBody(jsonchik)
}
}
我如何理解附加可以解决我的问题,但我找不到需要的附加
由于您正在调用 Firebase 实时数据库的 REST API,因此
POST
请求将始终使用服务器上生成的 ID 创建一个新子级。
如果您想自己指定密钥,则应使用
PUT
(而不是 POST
)。下面是一个基于 Firebase 文档的 如何使用 PUT
的示例:
curl -X PUT -d '{
"name": "Alan Turing",
"birthday": "June 23, 1912"
}' 'https://docs-examples.firebaseio.com/fireblog/users/alanisawesome.json'
将
alanisawesome
节点写入 fireblog/users
下。
使用
POST
时的等效项是:
curl -X POST -d '{
"name": "Alan Turing",
"birthday": "June 23, 1912"
}' 'https://docs-examples.firebaseio.com/fireblog/users.json'
但是使用
POST
Firebase 将为服务器上的新子节点生成唯一 ID,而使用 PUT
我们指定要写入的节点的示例名称(和完整路径)。