javascript 如何使用reactjs在firestore文档的map中添加值

s2j5cfk0  于 2023-09-29  发布在  Java
关注(0)|答案(1)|浏览(106)
const manuallyRejected = async () => {
    if (ownManualStatus !== 'rejected') {
      updateDoc(doc(db, 'pairRequests', buddyData.uid), {
        manual: 'rejected',
        blocked: {
          [user.uid]: Date.now()
        }
      } , { merge: true });
      updateDoc(doc(db, 'pairRequests', user.uid), {
        blocked: {
          [buddyData.uid]: Date.now()
        }
      } ,{ merge: true });
    }
    setPairFound(false);
    setBuddyData(null);
  };

有一个名为blocked的Map,它包含一个字段和useruid值以及被阻止用户的时间戳。所以我试图做的是添加一个新的字段,但updateDoc覆盖了所有以前的字段。谁能告诉我怎么做?我尝试使用FieldPath,但这是给一些错误,我不知道我是否做得对或不。这是一个至少还能用的代码

wdebmtf2

wdebmtf21#

updateDocnot有一个合并选项。
要更新map中的字段,可以使用字段路径。这将添加新字段或覆盖同名字段,但不会 * 覆盖其他现有字段。

updateDoc(doc(db, 'pairRequests', buddyData.uid), {
   manual: 'rejected',
   'blocked.myNewField':'This is a new field'
  });

相关问题