gpt4 book ai didi

javascript - 使用带有值和键的 startAt 的 Firebase 分页不起作用

转载 作者:行者123 更新时间:2023-11-30 14:50:28 27 4
gpt4 key购买 nike

我正在尝试为使用 ionic3 开发的移动应用程序中的搜索页面设置分页。即使提供了键,搜索结果也总是只获取前 5 个值。我尝试输入不同的 key ,但问题仍然存在。请在下面找到代码

this.storeListRefss$ = this.db.list(`/productList/` + this.storeId + `/`, {
query: {
orderByChild: 'product_name_search',
limitToFirst: 5,
startAt: { value: 'milk', key: '-L2Z8INhE8mFA4fWwiGk' },
endAt: self.searchValue + "\uf8ff"
}
});

this.storeListRefss$.subscribe((result) => {
result.forEach((element) => {
self.searchResults.push(element);
});
console.log(this.searchResults);
});

这是我从 firebase 中提取的示例 json 数据

{
"-L2Z8Gvp-T5O3r46dQO4" : {
"product_desc" : "",
"product_img" : "",
"product_name" : "2-POCKET PAPER FOLDER",
"product_name_search" : "2-pocket paper folder",
"product_reg_price" : "0.7900",
"product_sales_price" : "0.7900",
"product_upc" : "718103177610",
"status" : 1
},
"-L2Z8Gvp-T5O3r46dQO5" : {
"product_desc" : "",
"product_img" : "",
"product_name" : "3 MUSKETEERS BITES",
"product_name_search" : "3 musketeers bites",
"product_reg_price" : "1.9900",
"product_sales_price" : "1.9900",
"product_upc" : "040000422471",
"status" : 1
}
}

最佳答案

您使用的是旧版本的 AngularFire,它不支持查询 API 中 startAt()endAt() 的第二个参数。

您有两个选择:升级到新的 api 或创建一个引用并将其传递给 list() 方法。我建议升级到更简单的新版本 5 API。但我将在下面详细说明。

选项 1 - 创建引用而不是使用查询 API

constructor(private db: AngularFireDatabase) {
const ref = db.database.ref(`/productList/` + this.storeId);
const query = ref
.orderByChild('product_name_search')
.limitToFirst(5)
.startAt('milk', '-L2Z8INhE8mFA4fWwiGk')
.endAt(self.searchValue + "\uf8ff");
const list$ = db.list(query);
}

选项 2 - 升级到新 API

constructor(private db: AngularFireDatabase) {
const list$ = db.list(`/productList/` + this.storeId, ref => {
return ref
.orderByChild('product_name_search')
.limitToFirst(5)
.startAt('milk', '-L2Z8INhE8mFA4fWwiGk')
.endAt(this.searchValue + "\uf8ff");
}).valueChanges();
}

关于javascript - 使用带有值和键的 startAt 的 Firebase 分页不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48208572/

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