Firebase实时数据库类型

Firebase实时数据库类型,firebase,react-native,firebase-realtime-database,types,geolocation,Firebase,React Native,Firebase Realtime Database,Types,Geolocation,我最近更新了我的数据库和我用来检查和查看用户离停止工作的位置有多远的地理定位功能。直到我想到快照可能被读取为字符串而不是双精度或长精度,我才知道发生了什么。这发生在我推上一些新的山的时候。我使用的格式如下: "ABasin": { "latitude": 39.6425, "longitude": -105.8719, "name": "Arapahoe Basin" } 解决这个问题的方法是使用parseInt,但是这需要一个新的版本(这比立即修复后端要花更多的时

我最近更新了我的数据库和我用来检查和查看用户离停止工作的位置有多远的地理定位功能。直到我想到快照可能被读取为字符串而不是双精度或长精度,我才知道发生了什么。这发生在我推上一些新的山的时候。我使用的格式如下:

"ABasin": {
    "latitude": 39.6425,
    "longitude": -105.8719,
    "name": "Arapahoe Basin"
  }
解决这个问题的方法是使用parseInt,但是这需要一个新的版本(这比立即修复后端要花更多的时间)


如何确保实时数据库的类型正确,以解决此问题,而不必立即部署到IOS和Android。

您所说的“确保类型正确”到底是什么意思?“你说这应该是谁的责任?”DougStevenson基本上我的应用程序总是在我上次重新设定数据库种子时读取这些数字。我只是不知道会有什么变化,因为我上传他们同样的方式。不确定firebase实时数据库最近是否有更新,也不确定是什么让它们以字符串的形式进行特征化。数据库中没有任何更改。它将准确地存储您放入其中的内容。我建议检查填充数据库的代码,找出问题所在。此外,对于转换应该是浮点类型的内容,parseInt不是正确的选择。使用parseFloat代替。同意Doug的观点,在实时数据库发布之间,wire协议类型不太可能(尽管不是不可能)发生更改。但如果你能用数据库中特定位置的特定代码复制它,我会看看我是否也能复制它。好的,所以我能够通过返回并尝试使用我的旧种子来找出如何复制问题,并看到它是以数字而不是字符串的形式读取的,但我基本上只是去老猜测和检查,并继续重新播种,最奇怪的事情-它来自这座山:。不知何故,表示经度的大写字母L影响了所有其他值
let isInsideRadius = isPointWithinRadius(
        {latitude: parseInt(userLatitude), longitude: parseInt(userLongitude)},
        {latitude: parseInt(mountainLatitude), longitude: parseInt(mountainLongitude)},
    // 100 miles is 170 km
    170000
  );