如何使Firebase在提交具有某些未定义值的对象时忽略



这是一个我想提交到数据库的对象示例:

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

最新更新