reactjs - 如何在firebase数据库Reactjs中显示最新项目?
问题描述
这是我的火力基地功能:-
getAllProducts = () => {
// console.log('getAllProducts')
return new Promise((resolve, reject) => {
this.database
.ref(`products`)
.once('value')
.then(async (snapshot) => {
if (snapshot.exists()) {
let allProducts = Object.values(snapshot.val())
let allKeys = Object.keys(snapshot.val())
await Promise.all(
allProducts.map(async (item, index) => {
let items = item
item = allKeys[index]
let imageIds = items.images || []
if (imageIds.length) {
if (items.coverImage) {
let index = imageIds.indexOf(items.coverImage)
var element = imageIds[index]
imageIds.splice(index, 0)
imageIds.splice(0, 0, element)
}
let imageUrls = await this.getImages(imageIds)
items.images = imageUrls
}
console.log(allProducts)
return items
}),
)
// console.log(allProducts)
// allProducts = allProducts.filter((item) => item.isApproved === 1)
resolve(allProducts)
}
})
})
}
这是我在页面中调用的地方:-
// data from firebase
useEffect(() => {
DataBase.getAllProducts().then((response) => {
console.log('Data fetched user effect', response)
setIsCalling(true)
setDataList(response)
})
}, [])
我的查询是当我添加一个产品时,它应该显示在表格顶部,这意味着每个最新项目都应该显示在顶部。
这是我的表格视图:- https://prnt.sc/1soylw5
解决方案
推荐阅读
- javascript - UseSelector 传递 props
- sql - Snowflake SQL - 选择值包含至少一个字母的列的行
- qt - QMessage 框根据 IF 条件消失
- postgresql - postgresql_exporter 不工作。如何配置它?
- gradle - 如何在 Gradle 7 中抑制“执行优化已被禁用”警告?
- html - Primefaces:无法在 IE 的 inputTextarea 中选择文本
- java - Firebase Auth Anonymouse Registration/Login for Android java
- python - 如何将python accum函数与3d数组一起使用
- r - R中按日期的数据帧
- express - Mongoose await post.save() 似乎没有返回承诺