2015-03-30 82 views
1

我正在使用Firebase使用REST API来存储具有名称的应用程序令牌。使用REST将数据保存到Firebase

这是我使用的数据结构:

Firebase data structure

这是数据结构后,我添加新的应用程序。 Firebase data structure after

这是我使用的命令。

curl -X POST -d "{\"3ba7792jae16328\":{\"name\":\"Test 2\"}}" \ https://xxx.firebaseio.com/apps.json 

我不想要POST请求添加到我的数据结构中的唯一ID。我已经尝试了一个PUT请求,但它覆盖了“apps”节点中的所有数据。反正这是我尝试过的PUT命令。

curl -X POST -d "{\"3ba7792jae16328\":{\"name\":\"Test 2\"}}" \ https://xxx.firebaseio.com/apps.json 

是否有另一种方法来添加数据并保留我的结构?

(使用自动生成的POST令牌作为我自己的应用程序的令牌是不是一个有效的答案)

回答

1

你应该把你的自我生成的ID 的网址:

curl -X POST -d "{\":{\"name\":\"Test 2\"}" \ https://xxx.firebaseio.com/apps/3ba7792jae16328.json 

火力地堡始终用你指明的URL覆盖整个节点(除非你使用PATCH)。因此,将URL指定到要覆盖数据的级别非常重要。

+0

Thanks @Frank我使用了基于你的这个命令来添加新条目。 'curl -X POST -d“{\”name \“:\”Test 2 \“}”\ https:// xxx.firebaseio.com/apps/hi90210bet3b357.json' – 2015-03-30 20:56:39

+0

和POST令牌。没有办法解决这个问题吗?无论如何谢谢,你给出了正确的答案。 – 2015-03-30 21:02:09

+0

如果您的意思是命令是否可以在没有'-X POST'参数的情况下运行,那么我不确定。 Firebase遵循REST-ful模式,数据更新需要POST,PUT或PATCH谓词来更新数据。如果你可以使用curl来发布其中一个动词,而不用'-X POST'来解决它。或者,Firebase有一个“方法覆盖”,但是它只是用一些更长的代码替换“-X POST”:https://www.firebase.com/docs/rest/api/#section-method-override – 2015-03-30 21:22:33

相关问题