【问题标题】:How to update data using custom key in firestore如何在 Firestore 中使用自定义密钥更新数据
【发布时间】:2020-12-03 18:43:04
【问题描述】:

我正在使用 firebase firestore 为我的项目保存和检索数据。我的 diewstore 是这样的 ..

我想使用下面的 onClick 函数更新 about 数据

function updateAbout() {
  let key = "1";
  var aboutTextArea = document.getElementById("exampleInputTextAreaAbout1");
  db.collection("settings").doc(key).update({ 
    about: aboutTextArea.value,
   })
  .then(function () {
    console.log("updated");
    //location.reload();  //reload to load all the product
    //return false;
  })
  .catch(function (error) {
    console.log('Update failed: ' + error.message);
  });
}

但这在控制台中显示错误,如图像

如何使用该自定义键?请帮忙!!我无法更新我的“关于”数据。其实我想更新以下字段,在 html 中是

<div class="main-content container-fluid">
                    <h2>About</h2>
                    <form>
                      <div class="form-group">
                        <label for="exampleInputTextAreaAbout1">About Description</label>
                        <textarea rows="6" class="form-control" id="exampleInputTextAreaAbout1" placeholder="Enter About" required></textarea>
                      </div>
                      <button class="btn btn-primary" onclick="updateAbout()">Update</button>
                    </form>
                </div>

提前致谢。

【问题讨论】:

    标签: javascript html firebase google-cloud-firestore


    【解决方案1】:

    我想你正在寻找:

    db.collection("settings").doc(key).update(...)
    

    另请参阅 setting a document 上的文档,其中几乎涵盖了此用例。

    【讨论】:

    • 扩展弗兰克的回答 - .doc(key) 不是文档;它是文档的文档参考(将其视为索引)。您必须对此引用(.get()、.onSnapShot()、.set()、.update())执行一些操作才能实际访问文档。 doc().data(key) 不是任何类型的 Firestore 操作。您只能在其中一项 FETCH 操作(.get()、.onSnapShot() 等)的结果上使用 .data()
    • 请看我编辑的问题。我得到了同样的错误。请帮帮我
    • 请不要在回答后更改您的问题。如果您有新问题,请使用自己的MCVE 打开一个新问题。
    猜你喜欢
    • 2015-02-05
    • 2018-12-04
    • 1970-01-01
    • 2021-02-07
    • 2013-03-07
    • 2017-10-27
    • 2021-09-10
    • 2023-04-06
    • 1970-01-01
    相关资源
    最近更新 更多