2016-04-21 29 views
2

我需要用生成的密钥创建一个新对象并更新其他位置,它应该是原子的。有没有办法用多位置更新进行推送,还是必须使用旧的交易方式?这适用于任何客户端平台,但这里有一个JavaScript例子。Firebase:我可以将推送与多位置更新结合吗?

var newData = {}; 
newData['/users/' + uid + '/last_update'] = Firebase.ServerValue.TIMESTAMP; 
newData['/notes/' + /* NEW KEY ??? */] = { 
    user: uid, 
    ... 
}; 
ref.update(newData); 

回答

6

有两种方法可以在Firebase的JavaScript SDK中调用push

  1. 使用push(newObject)。这将生成一个新的推送ID并将数据写入该ID所在的位置。使用push()。这将生成一个新的推送ID并返回对该ID具有位置的引用。这是一个纯客户端操作

了解#2,你可以很容易地得到一个新的推ID的客户端有:

var newKey = ref.push().key(); 

然后,您可以使用您的多位置更新此键。

+0

如何使用此密钥?假设我有一个点击它的按钮。 Firebase数据有一个变量(click_count = 21)。所以,如果有人点击按钮,它会创建新的ID,因为我使用的是第一种方法。我可以拥有像这个键那样的东西,所以无论我添加什么,它都将它存储在同一个键中。即使我刷新网页。 – rupinderjeet

+0

感谢非常有用的提醒,push()是一个客户端操作! – Lucy

相关问题