我需要使用生成的 key 创建一个新对象并更新其他一些位置,它应该是原子的。有什么方法可以通过多位置更新进行推送,还是必须使用旧的事务方法?这适用于任何客户端平台,但这里有一个 JavaScript 示例。
var newData = {};
newData['/users/' + uid + '/last_update'] = Firebase.ServerValue.TIMESTAMP;
newData['/notes/' + /* NEW KEY ??? */] = {
user: uid,
...
};
ref.update(newData);
最佳答案
有两种方法可以在 Firebase 的 JavaScript SDK 中调用 push
。
push(newObject)
。这将生成一个新的推送 id 并在具有该 id 的位置写入数据。 push()
。这将生成一个新的推送 id 并返回对具有该 id 的位置的引用。这是一个纯粹的客户端操作。 知道#2,你可以很容易地获得一个新的推送 id 客户端:
var newKey = ref.push().key(); // on newer versions ref.push().key;
然后,您可以在多位置更新中使用此 key 。
关于javascript - Firebase:我可以将推送与多位置更新结合起来吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36774143/