Необходимые детали
Я использую выполнение Dialogflow для моего проекта вместе с базой данных Firebase в реальном времени. Моя база данных имеет структуру:
Позвольте мне сначала рассказать вам о структуре базы данных. У него есть список банкоматов (банкомат) с полным адресом и другой необходимой информацией. Мне нужно получить все банкоматы с заданным значением Pin
number, а заданное значение Pin
number будет получено из ответа API. Этот ПИН-код является ничем иным, как почтовым индексом этого банкомата. Очевидно, что с номером Pin
может быть много банкоматов.
Моя проблема
Ниже приведен код, который я использую для выполнения вызова API и запросов к базе данных Firebase с полученным значением Pin в ответ от API.
var ref = db.ref("atms/");
var response = await axios.get('some URL'); //API call
var zipcodes = response.data.search_results; // Array of Pin values
console.log(zipcodes[2].postal_code); //This prints a Pin value 721304, which confirms successful response from API
ref.orderByChild("Pin").equalTo(zipcodes[2].postal_code).on("child_added", function(snapshot) { //this line is the problem
console.log(snapshot.val());
});
Но приведенный выше код с equalTo(zipcodes[2].postal_code)
не дает никакого ответа. Но когда я заменяю его на equalTo(721304)
, он дает ожидаемый ответ. Подчеркнем, что equalTo(zipcodes[2].postal_code)
и equalTo(721304)
обязательно одинаковы.
Мне нужно использовать это equalTo(zipcodes[2].postal_code)
только потому, что я буду выполнять цикл над этим запросом, что связано с необходимостью запрашивать много-много Pin
одновременно.
Не могли бы вы помочь мне понять, что здесь не так и как мне реализовать то, что я пытаюсь сделать здесь? Пожалуйста, дайте мне знать, если возникнут дополнительные вопросы.