Я пытаюсь запросить базу данных firebase и ожидаю несколько выходов
JSON-файл:
[ {
"NAME" : "R",
"No" : "5"
}, {
"NAME" : "R",
"No" : "8"
}, {
"NAME" : "C",
"No" : "12"
}, {
"NAME" : "D",
"No" : "15"
}, {
"NAME" : "E",
"No" : "19"
}, {
"NAME" : "P",
"No" : "22"
} ]
Я ожидаю, что когда я запрашиваю ИМЯ «R», я должен получить «5» «8».. этот мой JS-код. Я всегда получаю только 1 вывод из «5».
Ниже приведен код. С этим все в порядке?
function getdetails_SITEINFO() {
// body...
var input = document.getElementById("site_id").value;
var input_final = input.toUpperCase();
//var database_SITEINFO = firebase.database("https://swite-76bd2.firebaseio.com");
var ref = firebase.database().ref('/').orderByChild("NAME").equalTo(input_final)
ref.on("child_added", function(snapshot)
{
var obj = JSON.stringify(snapshot.val());
var str = obj.replace (/"/g ,"").replace (/:/g, " <==> ").replace (/{/g, "").replace(/}/g, "").replace(/,/g, "\n").replace(/]/g, "");
document.getElementById("output").innerHTML = str ;
},);
}
@JeremyW, вы правы в console.info, я получаю каждое значение ... как мне исправить это в innerHTML?



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Я думаю, что, поскольку вы устанавливаете innerHTML, вы видите только конечное значение, отображаемое на экране.... и что
child_addedна самом деле срабатывает дважды, как вы и ожидали - вы просто не видите, как это происходит. Добавьтеconsole.info(snapshot.val())перед вашим заданиемvar obj = JSON..., и я подозреваю, что вы увидите два журнала консоли, по одному с каждым значением.