Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/371.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Javascript从Firebase中具有相同名称的所有子元素中获取数据?_Javascript_Node.js_Firebase_Firebase Realtime Database - Fatal编程技术网

如何使用Javascript从Firebase中具有相同名称的所有子元素中获取数据?

如何使用Javascript从Firebase中具有相同名称的所有子元素中获取数据?,javascript,node.js,firebase,firebase-realtime-database,Javascript,Node.js,Firebase,Firebase Realtime Database,我对firebase比较陌生,我想从所有同名的孩子(特别是“user,lat,lng”)那里获取数据,并将其放在地图上的位置。我还想知道是否有一种方法可以在添加另一个表时立即检索数据。 以下是JSON: { "heartbeat" : { "-LjiK_rXySmlqlOFdQos" : { "-LjiK_s6zEovrd_yu8nA" : { "date" : "Jul-14-2019", "lat" : 14.6668004,

我对firebase比较陌生,我想从所有同名的孩子(特别是“user,lat,lng”)那里获取数据,并将其放在地图上的位置。我还想知道是否有一种方法可以在添加另一个表时立即检索数据。 以下是JSON:

{
  "heartbeat" : {
    "-LjiK_rXySmlqlOFdQos" : {
      "-LjiK_s6zEovrd_yu8nA" : {
        "date" : "Jul-14-2019",
        "lat" : 14.6668004,
        "lng" : 121.1028933,
        "time" : "10:36:06",
        "user" : "Test User"
      },
      "-LjiOGsotaiAGzUpW8L7" : {
        "date" : "Jul-14-2019",
        "lat" : 14.6668004,
        "lng" : 121.1028933,
        "time" : "10:52:12",
        "user" : "Test User"
      },
      "-LjiRSK0yM7cbJL1w3lI" : {
        "date" : "Jul-14-2019",
        "lat" : 14.6668004,
        "lng" : 121.1028933,
        "time" : "11:06:06",
        "user" : "Test User"
      },
      "-LjiUtQoYJc2_CC4McIp" : {
        "date" : "Jul-14-2019",
        "lat" : 14.6652018,
        "lng" : 121.1060547,
        "time" : "11:21:07",
        "user" : "Test User"
      }
我正在使用javascript,并尝试将其连接到firebase,但我只能访问根目录,无法真正实现我想要的目标

<!DOCTYPE html>
<html>
    <head>
    <link rel="stylesheet" type="text/css" href="main.css">
    </head>

    <body>
        <div id="map"></div>


            <div>
                <span>Online users: </span><span id="users">0</span>
            </div>


        <!-- jQuery CDN -->
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

        <!-- Firebase -->
        <script src="https://www.gstatic.com/firebasejs/4.12.1/firebase.js"></script>
        <script>
           var config = {
                apiKey: "HISNCIHSDNCHINVS",
                authDomain: "HISNCIHSDNCHINVS",
                databaseURL: "HISNCIHSDNCHINVS",
                projectId: "HISNCIHSDNCHINVS",
                storageBucket: "HISNCIHSDNCHINVS",
                messagingSenderId: "HISNCIHSDNCHINVS",

            };
            firebase.initializeApp(config);
        </script>

        <script>
            var users_count = 0;

            // markers array to store all the markers
            var markers = [];
            var map;
            function initMap() { // google map 
                map = new google.maps.Map(document.getElementById('map'), {
                    zoom: 16,
                   center: new google.maps.LatLng(14.5838, 121.0597),
                    mapTypeId: 'terrain'
                });
            }


            function AddUser(data) {

                var icon = { // user icon
                   /* path: '',*/
                    scale: 1,
                    fillColor: "#000", 
                    fillOpacity: 1,
                    strokeWeight: 1,
                    anchor: new google.maps.Point(0, 5),

                };

                var coordinates = { lat: data.val().lat, lng: data.val().lng };

                var marker = new google.maps.Marker({
                    position: coordinates,
                    icon: icon,
                    map: map
                });

                /* --- On click info ---*/

                    var infowindow = new google.maps.InfoWindow({
                    content: 'Name: ' + data.val().user + '<br>Latitude: ' +  data.val().lat +
                    '<br>Longitude: ' + data.val().lng
                  }); 

                google.maps.event.addListener(marker, 'click', function() {
                  infowindow.open(map,marker);
                });


                markers[data.key] = marker; 
                document.getElementById("users").innerHTML = users_count;
            }

                // I want to connect to all my child. Idk what to do.
        var users_Ref = firebase.database().ref('/heartbeat');


    users_Ref.on('child_added', function (data) {
        users_count++;
        AddUser(data);
    });


    users_Ref.on('child_changed', function (data) {
        markers[data.key].setMap(null);
        AddUser(data);
    });

    users_Ref.on('child_removed', function (data) {
        markers[data.key].setMap(null);
        users_count--;
        document.getElementById("users").innerHTML = users_count;
    });


    </script> 
    https://maps.googleapis.com/maps/api/js?key=INSERT-API-KEY&callback=initMap">
    </script>

</body>

在线用户:0
变量配置={
阿皮奇:“HISNICHSDNCHINVS”,
authDomain:“HISNICHSDNCHINVS”,
数据库URL:“HISNICHSDNCHINVS”,
projectId:“Hisnichsdnchinvs”,
storageBucket:“HISNICHSDNCHINVS”,
messagingSenderId:“HISNICHSDNCHINVS”,
};
firebase.initializeApp(配置);
var用户数=0;
//标记数组以存储所有标记
var标记=[];
var映射;
函数initMap(){//google map
map=new google.maps.map(document.getElementById('map'){
缩放:16,
中心:新google.maps.LatLng(14.5838121.0597),
mapTypeId:'地形'
});
}
函数AddUser(数据){
var icon={//用户图标
/*路径:“”*/
比例:1,
fillColor:#000“,
不透明度:1,
冲程重量:1,
主播:新google.maps.Point(0,5),
};
var坐标={lat:data.val().lat,lng:data.val().lng};
var marker=new google.maps.marker({
位置:坐标,
图标:图标,
地图:地图
});
/*---点击信息---*/
var infowindow=new google.maps.infowindow({
内容:“名称:”+data.val().user+”
纬度:“+data.val().lat”+ “
经度:”+data.val().lng }); google.maps.event.addListener(标记'click',函数(){ 信息窗口。打开(地图、标记); }); markers[data.key]=标记器; document.getElementById(“用户”).innerHTML=users\u count; } //我想连接到我所有的孩子。我不知道该怎么办。 var users_Ref=firebase.database().Ref('/heartbeat'); 用户参考('child\u added',函数(数据){ 用户数++; 添加用户(数据); }); 用户参考('child\u changed',函数(数据){ 标记[data.key].setMap(null); 添加用户(数据); }); “删除子项”功能(数据)上的用户参考{ 标记[data.key].setMap(null); 用户数--; document.getElementById(“用户”).innerHTML=users\u count; }); https://maps.googleapis.com/maps/api/js?key=INSERT-API-KEY&callback=initMap“>

输出应该能够在基于我的firebase的所有位置上放置标记。非常感谢您的支持!

请参阅此主题:。请参阅此主题:。