javascript - 提交具有一些未定义值的对象时,如何使Firebase忽略?

标签 javascript reactjs firebase error-handling undefined

这是要提交到数据库的对象的示例:

item = {
  product_name: "3 Musketeers Truffle Crisp Bar",
  brands: undefined,
  ingredients_text: undefined,
  nutrients: {
    proteins_100g: 6.41,
    fat_100g: 28.8
  }
}
现在,由于该对象包含一些具有未定义值的键,我的应用程序中断了,并且收到错误消息,因为Firestore不支持未定义的数据类型。我不希望仅因为存在未定义的值而中断应用程序。
我一直在寻找解决方案,发现可以使用{ ignoreUndefinedProperties: true },但是当我使用npm安装firebase-admin时,出现此错误:
======== WARNING! ========

firebase-admin appears to have been installed in an unsupported environment.
This package should only be used in server-side or backend Node.js environments, and should not be used in web browsers or other client-side environments.
但是我什至没有后端环境,我可以在Firebase网站上设置此规则吗?
请有人帮我。

最佳答案

它与设置{ ignoreUndefinedProperties: true }不同,但是firestore支持空值,因此您可以将其作为一种快速而肮脏的解决方法:

var someText = undefined;

item = {
  product_name: "3 Musketeers Truffle Crisp Bar",
  brands: undefined,
  ingredients_text: someText || null,
  nutrients: {
    proteins_100g: 6.41,
    fat_100g: 28.8
  }
}
基本上,您可以为每个未定义的值添加|| null

关于javascript - 提交具有一些未定义值的对象时,如何使Firebase忽略?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65555446/

相关文章:

javascript - 排序数组的问题

javascript - 对于条件事件处理程序,这些方法中的哪一个更好?

javascript - React 钩子(Hook)的奇怪行为 : delayed data update

javascript - 如何通过静态代码分析显示所有JavaScript全局变量?

javascript - 对 php 的 Ajax 请求在本地主机上工作,但不在实时服务器上工作

node.js - 创建 react 应用程序npm启动错误: Cannot find module '@webassemblyjs/ast'

angularjs - Firebase + AngularFire -> 状态?

arrays - 从 Firebase 快照数组中获取数据

javascript - 如何将数据从类传递到 React Native 数组、firebase、stack navigator v5 中的函数

javascript - 使用 Emscripten Worker API 传输数据而不复制