gpt4 book ai didi

firebase - 如何对我的 Firebase 数据库进行 GET REST API 调用?

转载 作者:行者123 更新时间:2023-12-04 02:44:20 25 4
gpt4 key购买 nike

我有一个简单的 Firebase 实时数据库,如下所示:

My simple JSON Todo database

我使用它作为正文通过 PUT 调用创建了它:

[{
"complete": false,
"editMode": false,
"title": "Mow the lawn",
"id": 26,
"note": "This is a note for 27"
},

{
"complete": true,
"editMode": false,
"title": "Feed the dog",
"id": 27,
"note": "This is a note for 27"
}
]

我想创建一个 REST GET 调用以根据 ID(在本例中为 26)获取第一个项目。

我的规则是这样的:

{
"rules": {
".read": true,
".write": true,
"todos": {
".indexOn": ["id"]
}
}
}

我试过:

https://<myid>.firebaseio.com/todos/26/id.json

但是它返回了 null,因为当然那里有该死的 '0' 和 '1'。

我能做到:

https://<myid>.firebaseio.com/todos/0.json

这会返回第一项,但是当我这样做时:

https://<myid>.firebaseio.com/todos.json

没有返回“0”和“1”,那么我怎么知道要使用它们呢?

你明白我的困惑吗?

我错过了什么?

最佳答案

Firebase 实时数据库本身不存储数组。相反,它将数组元素存储在顺序键中,从 “0” 开始。

当您通过 REST API 请求具有以 “0” 开头的顺序键的位置/查询时,Firebase 将数据作为数组返回,这就是您在请求 todo 时看到的内容.json

但是您可以通过键来寻址数组中的各个项目,这就是您通过请求 todo/0.json 所做的。

以上所有通过其完整和绝对路径获取单个节点。但似乎您想要的是通过查询其属性之一的值来检索节点。为此,您需要使用 query .

要获取 "id" 等于 26 的项目,您可以执行以下查询:

https://<myid>.firebaseio.com/todos.json?orderBy="id"&equalTo=26

由于 todos 下可能有多个 id 等于 26 的子节点,这将返回此类节点的列表。对于您共享的 JSON:

{
"0": {
"complete": false,
"editMode": false,
"id": 26,
...
}
}

关于firebase - 如何对我的 Firebase 数据库进行 GET REST API 调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57863020/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com