gpt4 book ai didi

firebase - Firebase 实时数据库 REST API 是否支持不同实体位置的多路径更新?

转载 作者:行者123 更新时间:2023-12-05 04:06:22 24 4
gpt4 key购买 nike

我正在使用 Java 的 AppEngine 标准项目中的 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/时也会保存/path2/1733455/,我一直在研究多路径更新和批量更新( https://firebase.google.com/docs/firestore/manage-data/transactions#batched-writes ,仅在 Cloud Firestore 中可用?)但是,我没有发现此功能是否也可用于 Firebase 实时数据库的 REST API,或者只能通过 Firebase Admin SDK 使用。

例子here显示如何在“用户”节点下的两个位置进行多路径更新。

curl -X PATCH -d '{
"alanisawesome/nickname": "Alan The Machine",
"gracehopper/nickname": "Amazing Grace"
}' \
'https://docs-examples.firebaseio.com/rest/saving-data/users.json'

但我没有路径 1 和路径 2 的公共(public)上层节点。尝试将 url 设置为没有任何节点的数据库 url ( https://db.firebaseio.com.json ) 并在发送的 json 对象中添加节点,但我收到错误消息:提供了节点名或服务名,或者未知。

根据这篇博客文章,我认为这可以通过 Admin SDK 实现:https://firebase.googleblog.com/2015/09/introducing-multi-location-updates-and_86.html

是否可以使用 REST API 实现这些原子写入?谢谢!

最佳答案

如果更新是针对单个数据库的,总是有一个公共(public)路径。

在您的情况下,您将针对数据库的根运行 PATCH 命令:

curl -X PATCH -d '{
"path1/17": json1,
"path2/1733455": json2
}' 'https://yourdatabase.firebaseio.com/.json'

与您的 URL 的主要区别似乎是 .json 之前的 /。否则,您将尝试连接到 json TLD 上的域,据我所知,该域尚不存在。

请注意,您为批量更新提供的文档链接适用于 Cloud Firestore,它是一个完全独立于 Firebase 实时数据库的数据库。

关于firebase - Firebase 实时数据库 REST API 是否支持不同实体位置的多路径更新?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49900337/

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