Firestore не будет создавать документы, если поместить оператор return следующим образом:
return Promise.all([
res.status(200).send({
method: 'sendMessage',
chat_id,
text: `${field1Val}`,
parse_mode: 'HTML'
}),
admin.firestore().collection('colName').doc(`docName`).set({ "field1": field1Val }, { merge: true })
])
Хотя приведенный ниже код создаст Do c:
return Promise.all([
admin.firestore().collection('colName').doc(`docName`).set({ "field1": field1Val }, { merge: true }),
res.status(200).send({
method: 'sendMessage',
chat_id,
text: `${field1Val}`,
parse_mode: 'HTML'
})
])
Я использую первый формат с базой данных в реальном времени, и он отлично работает. Я не знаю, почему Firestore хочет быть на вершине.
Я ждал 15+ минут и обновил страницу, все еще без признаков документа.
PS: Я повторно инициализировал проект и установил новые модули npm. Не помогло XD
Полный код, который я не считаю проблемой, потому что do c создается, если я поместил эту команду вверху.
import * as functions from 'firebase-functions';
import * as express from 'express'
import * as cors from 'cors'
import admin = require('firebase-admin');
admin.initializeApp();
const bot = express()
bot.use(cors({ origin: true }))
bot.post('/', async (req, res) => {
const commandSliced: string = JSON.stringify(req.body.message.text)
let userMsg: string = ''
if (commandSliced.startsWith(`!text`)) {
userMsg = userCommandSliced.replace('!text', '')
let exclmCmd_array: string[];
msg_array = userEMsg.split(/\b\s+/, 2)
const field1val= userMsg.replace(msg_array[0], '')
return Promise.all([
res.status(200).send({
method: 'sendMessage',
chat_id,
text: `${field1val}`,
parse_mode: 'HTML'
}),
admin.firestore().collection('colName').doc(`docName`).set({ "field1": field1Val }, { merge: true })
])
})
РЕДАКТИРОВАТЬ: Это сработало, как было предложено Дугом.
return admin.firestore().collection('colName').doc(`docName`).set({ "field1": field1Val }, { merge: true }).then(() => {
return res.status(200).send({
method: 'sendMessage',
chat_id,
text: `${field1Val}`,
parse_mode: 'HTML'
})
})