首页 > 解决方案 > Firestore 不断覆盖。如何只设置非空值?

问题描述

我正在创建我的第一个网站,我打算使用 JAMstack 和 Firestore 将其发布到现实世界。我遇到了这个问题,经过几天的研究后无法弄清楚。这一行正在覆盖数据,因为即使表单阵营仍未填充,它们也会获得被推送到数据库的空值。我怎样才能只推送非空值?

const formData = new FormData(userform);
const image = formData.get('userimage')
const description = formData.get('userdescription')
const facebook = formData.get('facebook')
const instagram = formData.get('instagram')
const twitter = formData.get('twitter')

db.collection('users').doc(firebaseUser.uid).set({description, image, facebook, instagram, twitter},{merge : true});

标签: javascriptfirebasegoogle-cloud-firestore

解决方案


弗兰克和道格是对的。问题是弗兰克的回答返回了一个数组而不是一个对象。所以我在这个问题上使用了第二个答案

              Object.keys(myObj).forEach(
                (key) => myObj[key] == "" && delete myObj[key]
              );

推荐阅读