#javascript #node.js #firebase #google-cloud-firestore #google-cloud-functions
#javascript #node.js #firebase #google-cloud-firestore #google-cloud-функции
Вопрос:
exports.createNotice = functions.https.onRequest((req, res) => {
if (req.method !== "POST") {
return res.status(400).json({ error: "Method not allowed" });
}
const newNotice = {
body: req.body.body,
userHandle: req.body.userHandle,
createdAt: admin.firestore().Timestamp.fromData(new Date()),
};
admin
.firestore()
.collection("notices")
.add(newNotice)
.then((doc) => {
res.json({ message: `document ${doc.id} created successfully` });
})
.catch((err) => {
res.status(500).json({ error: "something went wrong" });
console.error(err);
});
});
Это моя функция. Когда я развертываю и пытаюсь отправить запрос на Postman следующим образом:
{
"body": "New Notice",
"userHandle": "user"
}
В нем говорится об ошибке: не удалось обработать запрос. Я хочу, чтобы он обновил мою базу данных в Firebase. Создание новой коллекции уведомлений. Кто-нибудь может мне помочь?
Комментарии:
1. Вы получаете какую-либо ошибку в консоли облачных функций?
Ответ №1:
У вас есть две ошибки в вашем коде, когда вы создаете Timestamp
.
- Существует опечатка: метод
fromDate()
неfromData()
; - Вам нужно вызвать его следующим образом:
admin.firestore.Timestamp.fromDate(new Date())
Кроме того, обратите внимание, что вы должны сделать следующее для первого блока в вашем коде. Нет необходимости использовать return
, см. Документ.
if (req.method !== "POST") {
res.status(400).json({ error: "Method not allowed" });
}