Я делаю генератор билетов, используя JavaScript. Я использую Firebase, чтобы дать пользователям код, который уже был сохранен в базе данных. моя база выложена так:
"qrcodes" : {
"23KU8877" : {
"email" : "person@email.com",
"ticketgenerated" : "true"
},
"288RX9U5" : {
"email" : "person2@email.com",
"ticketgenerated" : "true"
}
}
мой скрипт позволяет мне получить первый код в списке qrcodes и затем переместить его в другую базу данных, где его обрабатывает другой веб-сайт. Но я хотел найти способ, позволяющий функции делать новый снимок при каждом запуске.
Функции, которые получают данные из firebase, находятся здесь:
function generatehtml(){
ticketname = document.getElementById('name').value;
ticketemail = document.getElementById('email').value;
adultnumber = document.getElementById('adults').value;
childnumber = document.getElementById('child').value;
while (functionruncount < inputnumber){
grabfirebasecode();
}
}
function grabfirebasecode(){
ref.limitToFirst(1).once('value', function(snapshot) {
for(key in snapshot.val()){
genvar = snapshot.child(key + "/ticketgenerated" ).val();
var genvarpath = "test/" + key + "/ticketgenerated";
if (genvar === "false"){
snapshot.forEach(function(childSnapshot) {
ref.child(childSnapshot.key).remove();
});
ref2.child(key).set({
email: ticketemail,
ticketgenerated: "true",
});
createticket();
}
}
});
functionruncount ++;
}
поэтому, если приведенный выше код выполняется успешно и захватывает первый дочерний элемент списка qrcode (например, «23KU8877»), он останется неизменным независимо от того, сколько раз функция зацикливается.
Я не уверен, как это исправить. Любая помощь будет оценена.
Спасибо,
Даниэль Мартинес