Как заставить Firebase игнорировать при отправке объекта с некоторыми неопределенными значениями?

#javascript #reactjs #firebase #error-handling #undefined

#javascript #reactjs #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 } , но когда я устанавливаю firebase-admin с помощью npm, я получаю эту ошибку:

 ======== 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?

Пожалуйста, кто-нибудь может мне помочь.

Ответ №1:

Это не то же самое, что настройка { 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 для каждого вашего значения, которое может быть неопределенным.