繁体   English   中英

Firebase“实时数据库”和“云 Firestore”在 REST API 和身份验证方面的区别

[英]Difference between Firebase "Realtime Database" and "Cloud Firestore" in terms of REST API and authentication

也许是重复的问题,但这次我已经尽力解释了。

在我的 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 的写入:

在此处输入图片说明

所以写入实时数据库是通过邮递员工作的。

云防火测试

这是我的问题,我没有成功使用 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 数据库?

问候。

Cloud Firestore 不支持通过密钥访问。 要使用 REST API,您需要一个 Google OAuth 访问令牌(用于管理访问)或一个 Firebase Auth ID 令牌(普通用户访问)。 然后,它需要通过以下形式的Authorization标头传递给服务器:

Authorization: Bearer ${insert_token_here}

我建议阅读文档以获取有关如何获取适当令牌的其他信息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM