将变量传递给查询 (Firebase)

Pass a variable into a query (Firebase)

这真让我很沮丧,希望各位好心人帮帮我。

我有一个 firebase firestore 数据库,用于存储有关属性和城市的信息。所有属性都包含一个名为 location_city 的 key:value 对。它是一个字符串,用于存储 属性 所在的城市。

我在网页上创建了一个下拉框,其中包含可用城市列表。这个想法是通过 .where() 方法动态显示所选城市的属性。该方法接受的第三个参数是您要查询的字符串。

我想将下拉列表的文本值传递到查询中。

这是我的代码:

let selectedCityViewHomes;

function getDropdownSelection(sel) {
  selectedCityViewHomes = sel.options[sel.selectedIndex].text;
  selectedCityViewHomes.toString();
}

db.collection('Homes')
  .where('location_city', '==', selectedCityViewHomes)
  .get()
  .then(snapshot => {
    snapshot.docs.forEach(doc => {
      renderHome(doc);
    });
  });

查询方法似乎只有在您手动将字符串输入参数时才有效,并且似乎不允许您将变量(字符串)传递到方法中。

例如,我曾尝试在任一侧连接“'”以模仿 'Manchester',但这也不起作用。

TIA

查理

编辑:我发现哪里出了问题,我认为这是一个范围问题。我通过创建一个包装 db.collection 代码并将变量作为参数传入的函数来修复它。

const updateHomesViewHomes = (input) => {
    db.collection('Homes').where('location_city', '==', input).get().then((snapshot) => {
        homesViewHomes.innerHTML = "";
        snapshot.docs.forEach(doc  => {
            renderHome(doc);
        });
    });
};

感谢您的回复,希望这对某人有所帮助。