【问题标题】:Is there a way to copy doc value into another one without pulling the data and sending back有没有一种方法可以将 doc 值复制到另一个而不提取数据并发送回
【发布时间】:2018-11-15 18:19:03
【问题描述】:

我有 2 个文档 postspostDrafts。在某些时候,我想将文档从postDraft 发布到post。 内容类似于{body: "blah blah"}

所以简单的解决方案是拉取postDraft 内容,然后发送回posts 文档。这是我的代码。

   export const publishDraftById = (postId) => async dispatch => {
      return new Promise((resolve, reject) => {
        postDraftsRef.doc(postId).get()
          .then(doc => {
            if (!doc.exists) {
              reject('No such document!');
            } else {
              const draft = doc.data();
              postsRef.doc(postId).update({
                body: draft.body,
                date_modified: new Date()
              });
              resolve();
            }
          })
          .catch((err) => {
            reject(err);
            console.log('Error getting documents', err);
          });
      })
    };

但我真正认为有用的是一种方法来做这样的元代码

"分配帖子(postid).body = postDraft(postid).body"

我能以某种方式解决这个问题吗?

【问题讨论】:

    标签: javascript firebase google-cloud-firestore


    【解决方案1】:

    有没有办法将 doc 值复制到另一个而不提取数据并发送回

    不,没有。您需要先获取文档才能将其写回。如果不这样做,就无法简单地获取文档中的属性并将其写入另一个文档中。没有字段级权限或对文档的访问。这是整个文档,或者什么都没有。

    因此,如果您想读取字段{body: "blah blah",那么您将获得整个文档,而不仅仅是您将其写入另一个文档的属性。所以涉及到两个操作,一个读操作和一个写操作。

    【讨论】:

    • 嗨蒂格兰!一切都好吗,我可以帮助您了解其他信息吗?
    猜你喜欢
    • 1970-01-01
    • 2012-04-04
    • 2019-08-29
    • 1970-01-01
    • 2023-01-28
    • 1970-01-01
    • 2021-06-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多