我正在使用Google Map Api来获取位置。它返回位置列表。我想检查数据库中是否已有这些位置。如果是这样,它将获得该位置的一些信息,否则,我会将其添加为我的Firebase数据库中的新位置。我目前正在做的是,我将整个数据库读取为一个数组,然后开始遍历该数组并比较数组中的项目。
这确实很昂贵,并且拖慢了我的应用程序的速度。关于如何改善它的任何建议。我附上了我的代码。谢谢
.then(response => {
// result [] is the list of locations that I get from the google map APi call.
// response [] is the list of my entire data from my database.
const objects = Object.keys(response)
if (response === null){
console.log("error")
}else{
for (const key in result){
const current = new Location(result[key].id, result[key].name, result[key].geometry.location.lat, result[key].geometry.location.lng, '', '')
for(const curr in response){
if (result[key].id === response[curr].id){
current.reportStatus = response[curr].reportStatus
current.reportTime = response[curr].reportTime
break;
}
}
search.push(current)
const index = objects.indexOf(result[key].id)
if (index ===-1){
const url = "url"
putInDatabase(url,result[key].id, result[key].name, result[key].geometry.location.lat, result[key].geometry.location.lng, '', '')
}
}
setData(search)
}
}).catch(error => {
console.log(error)
});