我刚刚使用geofire建立了一个angularjs app来定位。它在生产中完美运行,但在将其部署到firebase时会出现问题。我相信错误应该来自这里
getLocations(radius: number, coords: Array<number>) {
console.log(radius, coords)
this.geoFire.query({
center: coords,
radius: radius
})
.on('key_entered', (userKey, location, distance) => {
//we need to check this because this.hits the behavioursubject already cached previous result and geofire fetches again each time we go back to homepage
const existAlready = this.hits.value.filter(h=>h.userKey === userKey)
if(existAlready.length > 0){
return
}
console.log(userKey)
const u = this.userList.query.ref
.child(`/${userKey}`)
.on('value',s=>{
const {name, address} = s.val()
console.log(s.val())
let hit = {
location,
distance,
name,
address,
userKey
}
let currentHits = this.hits.value
currentHits.push(hit)
this.hits.next(currentHits)
this.eventService.sendMessage(Constants.EVENT_MESSAGES.LOADING, true)
})
})
}
以上代码用于在应用加载后立即获取我周围的位置。但相反,我得到了这个错误
@ firebase / database:FIREBASE警告:用户抛出了异常 打回来。 TypeError:无法读取属性&#39; myID&#39;未定义的
错误仅出现在生产中
答案 0 :(得分:0)
我的应用程序中的生产中也出现了同样的错误。似乎解决它的唯一问题是清除我的谷歌缓存,历史记录和cookie。它不是一个永久性的修复,但试着看它是否有帮助。
答案 1 :(得分:0)
不确定这是否是解决方案,但这对我有用。我认为,一旦部署新构建而不清除缓存,就会出现真正的问题。
所以对我而言,我部署了eveytime,我必须再次清除缓存。
有趣的是,这恰好发生在chrome中。我在Edge测试过,我不必经历这个。