Firebase:我可以将推送与多位置更新结合吗? [英] Firebase: Can I combine a push with a multi-location update?

查看:134
本文介绍了Firebase:我可以将推送与多位置更新结合吗?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

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


解决方案有两种方法可以调用在Firebase的JavaScript SDK中推送。使用 push(newObject)
$ b


  1. 。这将生成一个新的推式ID,并将数据写入到具有该ID的位置。使用 push()

  2. $ C>。这将生成一个新的推式ID,并返回一个引用到该ID的位置。这是一个纯粹的客户端操作。



  3. 了解#2,您可以轻松得到一个新的推客户端客户端:

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

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


    I need to create a new object with a generated key and update some other locations, and it should be atomic. Is there some way to do a push with a multi-location update, or do I have to use the old transaction method? This applies for any client platform, but here's an example in JavaScript.

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

    解决方案

    There are two ways to invoke push in Firebase's JavaScript SDK.

    1. using push(newObject). This will generate a new push id and write the data at the location with that id.

    2. using push(). This will generate a new push id and return a reference to the location with that id. This is a pure client-side operation.

    Knowing #2, you can easily get a new push id client-side with:

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

    You can then use this key in your multi-location update.

    这篇关于Firebase:我可以将推送与多位置更新结合吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆