我想将条目添加到实时数据库特定的 firebase 集合

问题描述 投票:0回答:1

(我正在为企业添加 geofire 位置。我目前正在使用它来做到这一点:

var firebaseRef = push(ref(getDatabase()));
var geoFireInstance = new geofire.GeoFire(firebaseRef); 

geoFireInstance.set(  newUserName.value, [ lat2, lon2 ] ).then(function() {
        console.log("Provided key has been added to GeoFire: ");
}, function(error) {
     console.log("Error: " + error);
});  

这是通过将条目放入实时数据库中的随机数据库(前 2 个条目)来实现的,如下所示。我想向 BusLocations 添加新条目(如最后 2 个条目)而不是随机的:

{
  "-NiaHRxzh28S4UIMXa3E": { // RANDOM
    "STEAKSHAKE": {
      ".priority": "9yzekk35e8",
      "g": "9yzekk35e8",
      "l": [
        38.5639904,
        -90.5148296
      ]
    }
  },
  "-NiaN_K_KgBL95hq-0oz": { // RANDOM
    "B": {
      ".priority": "9yzemjne3j",
      "g": "9yzemjne3j",
      "l": [
        38.5680936,
        -90.4744243
      ]
    }
  },
  "BusLocations": { // **I WANT TO ADD INTO HERE INSTEAD OF RANDOM**
    "HARDEES67890": {
      "g": "9yzej7tx7n",
      "l": [
        38.5166,
        -90.46473
      ]
    },
    "LAZYRIVERBALLWIN": {
      "g": "9yzekjhp9b",
      "l": [
       "38.5687933",
        "-90.5217678"
      ]
  },
  // ...
}
javascript firebase firebase-realtime-database geofire
1个回答
0
投票

此行获取对数据库根目录的引用,然后在该位置生成新的引用。

var firebaseRef = push(ref(getDatabase()));

然后将其输入到

Geofire
构造函数中,每次加载页面时,它将指向新生成的引用。要解决此问题并始终定位同一位置,您需要删除
push()
并指定密钥。

var firebaseRef = ref(getDatabase(), "BusLocations"); // read as "using the given database, get a reference to BusLocations"

其余代码应保持不变。

© www.soinside.com 2019 - 2024. All rights reserved.