TLDR: После записи JSON (успешно) в мой Firestore, следующий запрос выдаст мне Внутреннюю ошибку сервера (500). У меня есть подозрение, что проблема в том, что вставка еще не завершена.
В общем, у меня есть этот код:
const jsonToDb = express();
exports.jsondb = functions.region('europe-west1').https.onRequest(jsonToDb);
jsonToDb.post('', (req, res) => {
let doc;
try {
doc = JSON.parse(req.body);
} catch(error) {
res.status(400).send(error.toString()).end();
return;
}
myDbFuncs.saveMyDoc(doc);
res.status(201).send("OK").end();
}
Функции базы данных находятся в другом файле JS.
module.exports.saveMyDoc = function (myDoc) {
let newDoc = db.collection('insertedDocs').doc(new Date().toISOString());
newDoc.set(myDoc).then().catch();
return;
};
Итак, у меня есть несколько теорий, возможно, одна из них не ошибается, но, пожалуйста, помогите мне с этим. (Также, если я допустил некоторые ошибки в этом небольшом фрагменте, просто скажите мне.)
Размножение:
Я отправляю первый запрос => все в порядке, Json в базе данных.
Я отправляю второй запрос после того, как первый запрос дал мне статус OK => в течение нескольких секунд ничего не происходит, затем 500: Внутренняя ошибка сервера.
Журналы: выполнение функции заняло 4345 мс, завершено со статусом: «ошибка соединения».
Я просто не понимаю. Давайте представим, что я использую это как API, несколько запросов одновременно. Не может ли он справиться? (Я полагаю, что он может справиться, просто я делаю что-то глупое.) Умышленно, я отправляю второй запрос после того, как первый закончил, и это происходит.
Должен ли я сделать асинхронное сохранение saveMyDoc?