尝试使用 update() 更新 firebase 文档,但不更新文档

trying to update a firebase document with update() but it not updating the document

我正在尝试创建一个博客。我正在研究编辑 post 功能。当我调用 ref.update() 时,它说更新有效,但在以下代码中数据库中没有任何更改。

代码

import AuthCheck from "../../components/AuthCheck";
import { firestore } from "../../lib/firebase";
import { useDocumentData } from "react-firebase-hooks/firestore";
import { useState, useEffect } from "react";
import { useRouter } from "next/router";
import { useForm } from "react-hook-form";
import toast from "react-hot-toast";
import ReactMarkdown from "react-markdown";
import Link from "next/link";

export default function Editposts({}) {
  return (
    <>
      <AuthCheck>
        <PostManager />
      </AuthCheck>
    </>
  );
}

const PostManager = () => {
  const [preview, setPreview] = useState(false);
  const router = useRouter();
  const { slug } = router.query;
  const postRef = firestore.collection("blogs").doc(slug);
  const [post] = useDocumentData(postRef);

  return (
    <>
      <div className="container">
        {post && (
          <>
            <section>
              <h1>{post.title}</h1>
              <h4>{post.slug}</h4>
              <Postform
                postRef={postRef}
                defaultValues={post}
                preview={preview}
              />
            </section>
            <aside>
              <h3>Tools</h3>
              <button onClick={() => setPreview(!preview)}>
                {preview ? "Edit" : "Preview"}
              </button>
              <Link href={`/${post.slug}`}>
                <button className="btn btn-secondary">Live view</button>
              </Link>
              {/* <DeletePostButton postRef={postRef} /> */}
            </aside>
          </>
        )}
      </div>
    </>
  );
};

const Postform = ({ postRef, defaultValues, preview }) => {
  const { register, handleSubmit, reset, watch } = useForm({
    defaultValues,
    mode: "onChange",
  });

  const updatePost = async ({ content, published }) => {
    await postRef.update({
      content,
      published,
    });

    reset({ content, published });

    toast.success("Post updated successfully!");
  };

  return (
    <form onSubmit={handleSubmit(updatePost)}>
      {preview && (
        <div className="card">
          <ReactMarkdown>{watch("content")}</ReactMarkdown>
        </div>
      )}

      <div className={preview ? `d-none`:``}>
        <textarea
          className='form-control'
          name="content"
          {...register("test", { required: true })}
        ></textarea>

        <fieldset>
          <input
            className="form-check-input"
            name="published"
            type="checkbox"
            {...register("test", { required: true })}
          />
          <label>Published</label>
        </fieldset>

        <button type="submit" className="btn btn-secondary">
          Save Changes
        </button>
      </div>
    </form>
  );
};

在这里,当我提交表单时,弹出窗口说更新成功,但是当我检查数据库时,没有任何变化。这是一个示例图片

好的,所以我找到了问题所在。 所以事情是我正在学习一个教程,而他正在使用 6.X.X 这是过时的版本。所以我去互联网试图找到一个解决方案并复制粘贴一行 cide 这是 {...register("test", { required: true })} 在这里我将字段值命名为 'test' 而不是 'content' 这就是导致问题的原因因为没有要更新的 'test' 字段。希望有人觉得这有帮助