将变量传递给查询 (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);
});
});
};
感谢您的回复,希望这对某人有所帮助。
这真让我很沮丧,希望各位好心人帮帮我。
我有一个 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);
});
});
};
感谢您的回复,希望这对某人有所帮助。