通过REST API从Firebase实时数据库中删除最后一个节点

时间:2020-05-29 12:49:47

标签: firebase firebase-realtime-database

我的Firebase实时数据库如下:

Database

我想从中删除最后一个节点-M8VOQO11nYo8iMC6NZ_。 在Firebase REST API的正式文档中,要删除它的CURL代码为curl -X DELETE \ 'https://[PROJECT_ID].firebaseio.com/Texter.json' ,但它删除了整个分支。有没有办法只删除最后一个节点?

2 个答案:

答案 0 :(得分:0)

仅当知道节点的整个路径时,才可以写入/删除节点。因此,要删除最后一个子节点,您需要执行两个步骤:

  1. 使用query in a GET call确定最后一个子节点的密钥
  2. 使用DELETE调用来删除该路径。

查询将类似于:

https://[PROJECT_ID].firebaseio.com/Texter.json?orderBy="$key"&limitToLast=1

答案 1 :(得分:0)

我找到了这个解决方案:

获取最后一个节点的端点

url = https://[PROJECT_ID].firebaseio.com/Texter.json?orderBy="$key"&limitToLast=1

获取响应

response= requests.get(url)

从响应中提取最后一个节点索引

last_node = list(response.json().keys())[0]

删除该节点的端点

del_url = f'https://[PROJECT_ID].firebaseio.com/Texter/{last_node}.json' 

使用端点中的该节点索引调用删除

del_res = requests.delete(del_url)