Проблема в том, что функция set()
выдает исключение перед возвратом обещания, потому что параметр недопустим, поэтому вы должны проверить, что у вашего объекта нет неопределенных полей.
Из экспериментов я обнаружил, что он принимает null
s, так что вот способ обойти эту проблему:
let firstValue;
app.get('/test', (req, res) => {
return db.collection('users').doc('someid').set({
first: firstValue || null
})
.then(()=> {
res.send('it worked?');
})
.catch((error: any) => {
console.error(error);
res.status(500).send('it didn\'t work');
})
})
Я не нашел никаких указаний в документации, что Функция set()
не принимает данные с полями undefined
, но я не знаю, зачем вам их туда доставать, так как я не думаю, что было бы полезно хранить их в базе данных. Также рекомендуется всегда инициализировать переменные, чтобы избежать необходимости решать такие проблемы, используйте пустые значения, такие как ""
или {}
, если вы еще не вычислили значение.