Я получаю данные из узла из базы данных Firebase, а затем, после выполнения некоторых вычислений, обновляю их.
Я использую Firebase SDK в узле js для выполнения этой задачи.
Вот код:
app.get("/setBookedSpots", function (request, response) {
console.log("booked spots called");
var verifierEmail = request.query.verifierEmail;
var toBeBookedSpot = request.query.bookSpot;
console.log(toBeBookedSpot);
admin.auth().getUserByEmail(verifierEmail)
.then(function (userRecord) {
console.log("Successfully fetched user data:", userRecord.toJSON());
var verifierId = userRecord.uid;
var refToUserInformation = db.ref("user/" + verifierId);
refToUserInformation.child("Society_Name").on("value", function (snapshot) {
console.log(snapshot.val());
var SocietyName = snapshot.val();
refToSocietyBookingStatus = db.ref("Societies/" + SocietyName + "/Society_Parking_Details/Society_Parking_Status");
refToSocietyBookingStatus.child("Booked_Spots").on("value", function (snapshot) {
var Booked_Spots = snapshot.val();
console.log(Booked_Spots);
console.log("to be booked spot", toBeBookedSpot);
Booked_Spots = Booked_Spots.toString() + "," + toBeBookedSpot;
console.log("after booked spot", Booked_Spots);
refToSocietyBookingStatus.update({
"Booked_Spots": Booked_Spots
})
response.send({ "msg": "success" });
})
})
});
});
Я получаю забронированные места и обновляю их на основе параметра запроса.
Когда я нажимаю, он переходит в бесконечный обратный вызов. Я хочу сказать, что он продолжает добавляться рекурсивно, поскольку нет цикла, который приводит к сбою.
Я попытался использовать другую переменную для ссылки на базу данных, чтобы она не вызывала родительское событие снова, но все еще оставалась та же проблема.
Вот URL вызова службы:
http://localhost:8080/setBookedSpots?verifierEmail=kemarikun@gmail.com&bookSpot=A7