首页 > 解决方案 > Uncaught (in promise) FirebaseError: Invalid document reference。文档引用必须有偶数个段

问题描述

好吧,我的问题不同..我创建了一个这样的模态表单:

模态形式

完全没有问题,我的数据可以轻松编辑:

没有错误的更新

现在,我开始用 Vue2-editor 插件替换文本区域,结果设计如下:

Vue 文本编辑器

我试图修改文本并保存:

错误

这是我的更新机制:

updateProduct() {
        // Update function has issues so I have to apply this work-around
        this.$firestore.products.doc(this.product['.key']).set(this.product).then(() => {
          this.$firestore.products.doc(this.activeItem).delete()}).then(()=>{
            this.$refs.edit.hide()
              toast.fire({
                  type: 'success',
                  title: 'Updated successfully'
              });
          });
      },

好吧,firebase 更新功能根本不起作用。我对此进行了研究,但徒劳无功-这是唯一可行的解​​决方法。

现在我需要弄清楚那个文本编辑器出了什么问题。

标签: firebasevue.jsgoogle-cloud-firestore

解决方案


你的问题在这里:

this.$firestore.products.doc(this.product['.key'])

我不知道this.product['.key']它的内容是什么,但几乎可以肯定它不会同时给你一个集合的名称和一个文档的名称。引用文档的唯一方法是通过集合。文档不存在于集合之外。这就是为什么传递给 doc() 的字符串中的路径段数必须是偶数的原因。它应该是“集合/文档”的形式。

您必须确定要写入的集合,并引用使用它的文档的路径。


推荐阅读