【发布时间】:2020-05-21 19:50:30
【问题描述】:
也许是一个重复的问题,但这次我已经尽力解释了。
在我的 Firebase 控制台上,当我单击屏幕左侧的“数据库”选项时,向我显示我们有两个不同的数据库,即“实时数据库”和“云 Firestore”。
这是我的实时数据库的当前外观:
这是我的 Cloud Firestore 的当前外观:
实时数据库测试
在 Postman 上,我确实选择了 PATCH 选项,为了定义我将在地址栏上放置的内容,我遵循了 synthax:
https://PROJECT-NAME.firebaseio.com/PATH.json?auth=YOUR-DATABASE-SECRET-CODE
对我来说,它变成:
https://eletronica-ab6b1.firebaseio.com/database333.json?auth=DZSQwLoNWAneWA9BcEfAgnelmY965pq98HF4pIT0
这不是我真正的密钥,别担心。
作为我请求的内容,我转到正文,在列表中选择“原始”和“JSON”,以下是内容:
{"name": "PAUL"}
正如您在此处看到的那样:
在 Postman 上单击 SEND 后,实际上发生了对 REALTIME DATABASE 的写入:
所以对 REALTIME DATABASE 的写入是通过 Postman 进行的。
云防火墙测试
这是我的问题,我没有成功使用 Cloud Firestore。
在 Postman 上,我确实选择了 GET 选项,并且为了定义我将在地址栏上放置的内容,我遵循了 synthax:
https://firestore.googleapis.com/v1/projects/YOUR_PROJECT_ID/databases/(default)/documents/COLLECTION/DOCUMENT
对我来说,它变成:
https://firestore.googleapis.com/v1/projects/eletronica-ab6b1/databases/(default)/documents/colA/docA.json?auth=DZSQwLoNWAneWA9BcEfAgnelmY965pq98HF4pIT0
正如您在此处看到的那样:
我确实收到了这条消息作为回应:
{
"error": {
"code": 400,
"message": "Invalid JSON payload received. Unknown name \"auth\": Cannot bind query parameter. Field 'auth' could not be found in request message.",
"status": "INVALID_ARGUMENT",
"details": [
{
"@type": "type.googleapis.com/google.rpc.BadRequest",
"fieldViolations": [
{
"description": "Invalid JSON payload received. Unknown name \"auth\": Cannot bind query parameter. Field 'auth' could not be found in request message."
}
]
}
]
}
}
奇怪的是,如果我尝试更改请求上的项目名称,例如从原来的“eletronica-ab6b1”到“eletronica-999zzz”,不应该存在的东西,响应与上述相同,完全一样。
为什么写入 REALTIME DATABASE 如此容易,而写入 CLOUD FIRESTORE DATABASE 似乎并不容易?是否无法像使用实时数据库一样以简单的方式写入 Cloud Firestore? Cloud Firestore 是否基于令牌?如果是,我如何通过 Postman 获取令牌,然后使用该令牌写入 Cloud Firestore 数据库?
问候。
【问题讨论】:
标签: firebase rest firebase-realtime-database google-cloud-firestore postman