Firebase:我可以将推送与多位置更新结合使用吗?

Tra*_*ian 3 javascript firebase firebase-realtime-database

我需要使用生成的密钥创建一个新对象并更新其他一些位置,它应该是原子的.是否有某种方法可以使用多位置更新进行推送,还是必须使用旧的事务方法?这适用于任何客户端平台,但这是JavaScript中的一个示例.

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

Fra*_*len 10

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

  1. 使用push(newObject).这将生成一个新的推送ID并在具有该ID的位置写入数据.

  2. 使用push().这将生成一个新的推送ID并返回对具有该ID的位置的引用.这是一个纯粹的客户端操作.

知道#2,您可以轻松获得一个新的推送ID客户端:

var newKey = ref.push().key(); // on newer versions ref.push().key;
Run Code Online (Sandbox Code Playgroud)

然后,您可以在多位置更新中使用此密钥.