Я создаю систему бронирования с использованием firebase. Пользователь может выбрать количество мест, и я хочу записать их в свой документ. Выбранные места находятся внутри массива, и они являются объектами, например:
{
reservationId: 'id',
selectedSeats: [{"x": 0, "y": 0,},
{"x": 1, "y": 0,},
{"x": 2, "y": 0,}]
}
Я хочу убедиться, что ни один другой пользователь не сможет записывать в базу данных хотя бы одно такое же место с транзакциями.
let transaction = db.runTransaction(t => {
return t.get(venueId)
.then(doc => {
//I need to get all the objects inside the document and check their array of reservations.
t.set(venueId, {reservation});
});
}).then(result => {
console.log('Transaction success!');
}).catch(err => {
console.log('Transaction failure:', err);
});
Как я могу сделать транзакцию неудачной, если место найдено в массиве каждого объекта внутри документа?