gpt4 book ai didi

javascript - Ionic 中 AngularFireList 的搜索功能

转载 作者:行者123 更新时间:2023-12-03 02:12:19 25 4
gpt4 key购买 nike

我在让这个搜索功能正常工作时遇到了一些麻烦。我现在已经设置好了,所以当我搜索它时它会得到正确的项目,但它的拼写必须准确,包括大写和标点符号。我希望它能够获取该项目,无论用户搜索词的大小写如何,并且如果他们只是输入字母“b”,它将包含项目字段中具有“b”的所有项目。

我知道我想查询对数据库的调用,因为在客户端执行此操作会非常繁重,但是你们觉得怎么样,或者你们将如何实现这一目标?

 setFilteredItems() { 

this.employeeListRef = this.database.list('userProfile',
ref=> ref.orderByChild('lastName'));


this.employeeList = this.employeeListRef.snapshotChanges()
.map(
changes => {
return changes.map(c => ({
key: c.payload.key, ...c.payload.val()
}))
}
);

//if searchterm is null it returns so it can set back the list to all values
//searchterm is declared in constructor
if(!this.searchTerm) {
return;
}

//var term = this.searchTerm.toLowerCase();

this.employeeListRef = this.database.list('userProfile',
ref => ref.orderByChild('lastName').equalTo(term));


this.employeeList = this.employeeListRef.snapshotChanges()
.map(
changes => {
return changes.map(c => ({
key: c.payload.key, ...c.payload.val()
}))
}
);


}

最佳答案

如果你看ASCII table您可以很好地了解 Firebase 如何存储其记录以及为什么 orderByChild 可能无法按您的预期工作。

b98B66。它们在 ASCII 表中的位置不同。

您可以尝试以下两种方法来帮助您访问所需表达式中的数据。

  1. 尝试将用户 database methods 的可搜索数据转换为小写
  2. 使用云函数和记录写入,将该记录的小写版本保存在对象中,然后按该记录进行搜索。一个例子是;

    { lastName: 'Smith', lowercaseLastName: 'smith' }

然后orderByChild('lowercaseLastName')

关于javascript - Ionic 中 AngularFireList 的搜索功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49501511/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com