#javascript #node.js #firebase #google-cloud-firestore
# #javascript #node.js #firebase #google-cloud-firestore
Вопрос:
У меня есть следующий веб-хук, и он прослушивает API поставщика платежей, чтобы обновить статус заказа после того, как он «оплачен». В журналах для функций Firebase я получаю журнал консоли Payment status paid
, означающий, что я правильно обновил порядок. Однако, когда я пытаюсь вызвать функцию, отвечающую за обновление Firestore, я получаю следующее:
@firebase/firestore: Firestore (7.16.0): Connection GRPC stream error. Code: 13 Message: 13 INTERNAL: Received RST_STREAM with code 2
exports.webhooks = functions.https.onRequest(function (req, res) {
mollieClient.payments
.get(req.body.id)
.then((payment) => {
console.log("Payment status " payment.status);
if (payment.isPaid()) {
updateOrderStatusPaid(req.body.id);
return null;
}
return null;
})
.catch((error) => {
res.send(error);
});
console.log("Request body " req.body);
});
function updateOrderStatusPaid(orderId) {
firebase
.firestore()
.collection("orders")
.where("paymentId", "==", orderId)
.update({
status: payment.status
})
.then(function () {
console.log("Success");
return null;
})
.catch(function (error) {
console.log("Error " error);
});
}
Вот мое package.json
досье
{
"name": "functions",
"description": "Cloud Functions for Firebase",
"scripts": {
"lint": "eslint .",
"serve": "firebase emulators:start --only functions",
"shell": "firebase functions:shell",
"start": "npm run shell",
"deploy": "firebase deploy --only functions",
"logs": "firebase functions:log"
},
"engines": {
"node": "8"
},
"dependencies": {
"@mollie/api-client": "^3.2.4",
"axios": "^0.20.0",
"cors": "^2.8.5",
"dotenv": "^8.2.0",
"firebase": "^7.16.0",
"firebase-admin": "^8.10.0",
"firebase-functions": "^3.6.1",
"grpc": "^1.24.4"
},
"devDependencies": {
"eslint": "^5.12.0",
"eslint-plugin-promise": "^4.0.1",
"firebase-functions-test": "^0.2.0"
},
"private": true
}
Я не могу найти ничего конкретного по этой проблеме. Я уже использую Firestore на стороне своего сервера, поэтому нет никаких проблем с инициализацией Firebase. Может быть, кто-нибудь знает, в чем может быть проблема, или предложит что-то, что я должен сделать, чтобы решить эту проблему. Спасибо!
Ближайшая ссылка на эту проблему https://github.com/googleapis/nodejs-datastore/issues/679 где до сих пор нет ответа.
Комментарии:
1. Я полагаю, что эта проблема отслеживается здесь , и расследование все еще продолжается. Обновление
@grpc/grpc-js
может частично смягчить его.2. @EmilGi Спасибо, я вижу в своем
package-lock.json
файле, что у меня@grpc/grpc-js
есть версия"1.0.5"
, между тем в npmjs.com последняя версия есть1.24.4
. Я использовал командуnpm i --package-lock-only
для обновления своегоpackage-lock.json
файла, но вижу, что версия не изменилась. Не могли бы вы сказать мне, как его правильно обновить?3. Вы можете указать это в своем
package.json
, как описано здесь .4. @EmilGi, я включил
grpc: "^1.24.4"
в свои зависимости вpackage.json
файл, запустивnpm i grpc
, как я понял из этой ссылки из Firebase. Я все еще получаю ту же ошибку, я считаю, что это ничего не изменило, и я уверен, что я не сделал того, что, по моему мнению, должен был сделать, чтобы решить эту проблему. Не могли бы вы в нескольких словах объяснить, как именно это сделать? ….5. Не могли бы вы поделиться своим файлом package.json? И, пожалуйста, обратите внимание, что даже если вы установили правильную версию grpc, проблема в некоторых случаях все еще сохраняется, поскольку поток GitHub все еще открыт, и некоторые пользователи все еще сталкиваются с этим.