优化Firebase请求

时间:2020-11-08 05:36:22

标签: javascript firebase react-native firebase-realtime-database

我正在使用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)
            });

0 个答案:

没有答案