使用 Cloud Firestore REST API 如何使用带有 http.post() 方法的 http 包发送数据
Using Cloud Firestore REST API how to send data using http package with http.post() method
我有一个名为“txt”的集合,我想在其中创建一个新文档,使用自动生成的文档 ID,字段 'test' 及其值为 'title'。
我在 Flutter 中有以下代码不起作用:
Future<http.Response> _post() {
String url =
'https://firestore.googleapis.com/v1/projects/onebear-webapp/databases/(default)/documents/txt?key=AIzxSyAllNuEbN40DEvBPIQkcLIWn00c9TYWqY';
return http.post(
url,
headers: <String, String>{
'Content-Type': 'application/json; charset=UTF-8',
},
body: jsonEncode(<String, String>{
'test': 'title',
}),
);
}
并且一直报错如下:
{
"error": {
"code": 400,
"message": "Invalid JSON payload received. Unknown name \"test\" at 'document': Cannot find field.",
"status": "INVALID_ARGUMENT",
"details": [
{
"@type": "type.googleapis.com/google.rpc.BadRequest",
"fieldViolations": [
{
"field": "document",
"description": "Invalid JSON payload received. Unknown name \"test\" at 'document': Cannot find field."
}
]
}
]
}
}
我似乎无法弄清楚错误消息以及错误“接收到无效的 JSON 负载。”或“fieldViolations”的意思是——即使我使用 jsonEncode 进行编码。
非常感谢您对此提供任何帮助或指导。谢谢!
我建议您与其他用户 运行 一起看看这些类似的帖子 以解决类似问题。
如果您想更新多个字段和值,您是否尝试过分别指定每个字段和值?例如,您的请求正文应如下所示:
{
"fields": {
"field": {
"stringValue": "Value1"
},
"Field2": {
"stringValue": "Value2"
}
}
}
因为您似乎在尝试设置字符串哈希。我建议您查看有关 map's field 的文档,因为它遵循不同的结构,例如:包含“键”列表的对象:值对。
map(键:字符串,值:对象(值))
{ "name": "wrench", "mass": "1.3kg", "count": "3" }
因为 jsonEncode looks to be a functionality specific to Flutter development, I would recommend bringing your question to the Flutter developers 团队,他们会更了解这种实现方法。
我有一个名为“txt”的集合,我想在其中创建一个新文档,使用自动生成的文档 ID,字段 'test' 及其值为 'title'。
我在 Flutter 中有以下代码不起作用:
Future<http.Response> _post() {
String url =
'https://firestore.googleapis.com/v1/projects/onebear-webapp/databases/(default)/documents/txt?key=AIzxSyAllNuEbN40DEvBPIQkcLIWn00c9TYWqY';
return http.post(
url,
headers: <String, String>{
'Content-Type': 'application/json; charset=UTF-8',
},
body: jsonEncode(<String, String>{
'test': 'title',
}),
);
}
并且一直报错如下:
{
"error": {
"code": 400,
"message": "Invalid JSON payload received. Unknown name \"test\" at 'document': Cannot find field.",
"status": "INVALID_ARGUMENT",
"details": [
{
"@type": "type.googleapis.com/google.rpc.BadRequest",
"fieldViolations": [
{
"field": "document",
"description": "Invalid JSON payload received. Unknown name \"test\" at 'document': Cannot find field."
}
]
}
]
}
}
我似乎无法弄清楚错误消息以及错误“接收到无效的 JSON 负载。”或“fieldViolations”的意思是——即使我使用 jsonEncode 进行编码。
非常感谢您对此提供任何帮助或指导。谢谢!
我建议您与其他用户 运行 一起看看这些类似的帖子
如果您想更新多个字段和值,您是否尝试过分别指定每个字段和值?例如,您的请求正文应如下所示:
{
"fields": {
"field": {
"stringValue": "Value1"
},
"Field2": {
"stringValue": "Value2"
}
}
}
因为您似乎在尝试设置字符串哈希。我建议您查看有关 map's field 的文档,因为它遵循不同的结构,例如:包含“键”列表的对象:值对。
map(键:字符串,值:对象(值))
{ "name": "wrench", "mass": "1.3kg", "count": "3" }
因为 jsonEncode looks to be a functionality specific to Flutter development, I would recommend bringing your question to the Flutter developers 团队,他们会更了解这种实现方法。