Firebase实时数据库REST API是否支持不同实体位置的多路径更新?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Firebase实时数据库REST API是否支持不同实体位置的多路径更新?相关的知识,希望对你有一定的参考价值。
我正在使用带有Java的AppEngine Standard项目的Firebase实时数据库的REST API。我能够成功地将数据放在不同的位置,但是我不知道如何确保对不同路径的原子更新。要将一些数据单独放在我正在做的特定位置:
requestFactory.buildPutRequest("dbUrl/path1/17/", new ByteArrayContent("application/json", json1.getBytes())).execute();
requestFactory.buildPutRequest("dbUrl/path2/1733455/", new ByteArrayContent("application/json", json2.getBytes())).execute();
现在要确保在保存/ path1 / 17 / a / path2 / 1733455 /时也保存了,我一直在研究多路径更新和批量更新(https://firebase.google.com/docs/firestore/manage-data/transactions#batched-writes,仅在Cloud Firestore中可用?)但是,我没有找到此功能是否也可用于Firebase实时数据库的REST API,或仅通过Firebase Admin SDK。
示例here显示了如何在“users”节点下的两个位置执行多路径更新。
curl -X PATCH -d '{
"alanisawesome/nickname": "Alan The Machine",
"gracehopper/nickname": "Amazing Grace"
}'
'https://docs-examples.firebaseio.com/rest/saving-data/users.json'
但是我没有path1和path2的公共上层节点。尝试将url设置为数据库url而没有任何节点(https://db.firebaseio.com.json)并添加发送的json对象中的节点,但是我收到错误:提供了nodename或servname,或者未知。
根据这篇博客文章:https://firebase.googleblog.com/2015/09/introducing-multi-location-updates-and_86.html,我认为这可以通过Admin SDK实现
如果使用REST API可以实现这些原子写入的任何想法?谢谢!
如果更新将转到单个数据库,则始终存在共同路径。
在您的情况下,您将针对数据库的根运行PATCH
命令:
curl -X PATCH -d '{
"path1/17": json1,
"path2/1733455": json2
}' 'https://yourdatabase.firebaseio.com/.json'
与您的网址的主要区别似乎是/
之前的.json
。如果没有这个,你就试图连接到json
TLD上的域名,这个域名尚未存在(尚未)。
请注意,您为“批量更新”提供的文档链接适用于Cloud Firestore,它与Firebase实时数据库完全独立。
以上是关于Firebase实时数据库REST API是否支持不同实体位置的多路径更新?的主要内容,如果未能解决你的问题,请参考以下文章
Firebase Rest Api 从我的模型类中读取数据返回 null [重复]
如何通过 REST API 读取 Firebase 有序数据?
带有 Firebase Id 令牌的 Firestore REST API