这是一个我想提交到数据库的对象示例:
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
。