Vuefire Firebase更新问题

Vuefire Firebase更新问题,firebase,firebase-realtime-database,vue.js,vuejs2,vuefire,Firebase,Firebase Realtime Database,Vue.js,Vuejs2,Vuefire,我在从VueFire更新Firebase时遇到som问题。我尝试使用以下方法,但如果我将任何字段留空(这在设置中应该经常发生),它会对我大喊大叫。你知道为什么如果。用空白字段更新会变得疯狂吗 错误:未捕获错误:Firebase.update失败:第一个参数在属性“Businesss.somebusiness.video”中包含未定义的内容 有一次我把上面的话改写成这样: updatePost: function (post) { const businesschildKey =

我在从VueFire更新Firebase时遇到som问题。我尝试使用以下方法,但如果我将任何字段留空(这在设置中应该经常发生),它会对我大喊大叫。你知道为什么如果。用空白字段更新会变得疯狂吗

错误:未捕获错误:Firebase.update失败:第一个参数在属性“Businesss.somebusiness.video”中包含未定义的内容

有一次我把上面的话改写成这样:

updatePost: function (post) {
        const businesschildKey = post['.key'];
        delete post['.key'];
        /* Set the updated post value */
        this.$firebaseRefs.posts.child(businesschildKey).set(post)
      },
它的工作原理令人惊讶,但删除密钥似乎会在Vue中引起奇怪的排序问题。如果我能找到一种方法,在一个方法为空时不让它出错,我宁愿坚持使用top方法。

根据

将对象传递给Firebase时,属性的值可以 为值或
null
(在这种情况下,属性将被删除)。他们 不能是未定义的,这是根据 错误

您的错误消息表明
post.video
的值为
未定义
。您可以使用逻辑或来提供回退值,如下所示:

  video: post.video || null,
这意味着无论何时
post.video
具有假y值,表达式的计算结果都将为
null
。但这可能会捕获空字符串或数字0。更准确地说,您应该使用

  video: typeof post.video === 'undefined' ? null : post.video,
如果需要对多个值执行此检查,可以为其编写函数:

function nullIfUndefined(value) {
  return typeof value === 'undefined' ? null : value;
}
那么你的表情就是

  video: nullIfUndefined(post.video),
根据,

将对象传递给Firebase时,属性的值可以 为值或
null
(在这种情况下,属性将被删除)。他们 不能是未定义的,这是根据 错误

您的错误消息表明
post.video
的值为
未定义
。您可以使用逻辑或来提供回退值,如下所示:

  video: post.video || null,
这意味着无论何时
post.video
具有假y值,表达式的计算结果都将为
null
。但这可能会捕获空字符串或数字0。更准确地说,您应该使用

  video: typeof post.video === 'undefined' ? null : post.video,
如果需要对多个值执行此检查,可以为其编写函数:

function nullIfUndefined(value) {
  return typeof value === 'undefined' ? null : value;
}
那么你的表情就是

  video: nullIfUndefined(post.video),

有趣的是,当我的属性可能是
'
或者根据业务而有一个值时,我很难理解如何解决这个问题。
post.video
实际上没有定义吗?尝试
video:post.video | | null
| | null
添加到末尾似乎已经解决了这个问题。谢谢这做了什么?很有趣,但很难理解当我的属性可能是
'
或者根据业务有一个值时,如何修复它。
post.video
实际上没有定义吗?尝试
video:post.video | | null
| | null
添加到末尾似乎已经解决了这个问题。谢谢那是干什么的?