【问题标题】:Update Data in Firebase With VueJS使用 VueJS 更新 Firebase 中的数据
【发布时间】:2017-11-07 14:17:51
【问题描述】:

我想在不使用复制/粘贴键值的“天真”方式的情况下更新某个键下的值。因为我希望它可以扩展到任何客户端。

我基本上想在点击“编辑”属性时更新为“真”。

这是我当前的树结构:

我目前的方法:

      var query= db.ref('Clients/AgenceEco/forms/step1/');
          query.update({
              edit: true
      })

问题在于它实际上在“step1”下添加了一个编辑属性,如下所示:

我显然不希望这样,但想更新 firebase 随机生成的键下的值。

您将如何解决这个问题?谢谢

【问题讨论】:

  • 这与 Vue 有什么关系?

标签: firebase firebase-realtime-database vue.js vuejs2


【解决方案1】:

我认为你可以这样做:

var updates = {};
updates['Clients/AgenceEco/forms/step1/edit'] = true;
db.ref().update(updates);

https://firebase.google.com/docs/database/admin/save-data#section-update

编辑:关于您的 cmets,您可以这样做(但我认为可能有更简单的方法):

var ref = 'Clients/AgenceEco/forms/step1';
firebase.database().ref(ref).once('value', function(snapshot) {
    var data = snapshot.val();
    if (data) {
        data.edit = true;
        firebase.database().ref(ref).update(data);
    }
}

【讨论】:

  • 嗨 Camden_kid...不幸的是,这在唯一 ID 键 -KyLgpQY1UShZELIgdOz 下添加了一个带有“Clients/AgenceEco/forms/step1/edit”的全新树
  • 关于仅针对该唯一键下的“编辑”属性的任何想法?谢谢
  • @Tony 如果您有权访问密钥,那么它将是 updates['Clients/AgenceEco/forms/step1/key/edit'] = true;,例如updates['Clients/AgenceEco/forms/step1/LyLgpQY1UShZELIgd0z/edit'] = true;
  • 谢谢!就我而言,我无法访问密钥...您知道该怎么做吗?
【解决方案2】:

只需对孩子执行此操作,而不是直接执行第 1 步。用child方法:

var query= db.ref('Clients/AgenceEco/forms/step1/')
query.child().update({
  edit: true
})

【讨论】:

  • 嗨@WaldemarIce,很遗憾我得到:“Reference.child 失败:被调用时使用了 0 个参数。”我明白你在说什么,但我无法在步骤 1 下定位那个特定的唯一键。有什么想法吗?
猜你喜欢
  • 1970-01-01
  • 2022-01-22
  • 1970-01-01
  • 2018-04-13
  • 2021-05-24
  • 1970-01-01
  • 2018-10-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多