【发布时间】:2022-02-06 23:33:32
【问题描述】:
抱歉,这是我使用 Firebase 的第一个项目。我在我的项目中尝试了这个解决方案,但无济于事(来自堆栈溢出的另一个帖子)。该数据库的数据来自 ESP8266。我的 Firebase 如下所示:
"MOIST" : {
"-MvDCD_qVJUZtZ9Pe98p" : {
"data" : "2022-2-6",
"time" : "09:44:40",
"value" : 5
},
"-MvDCE56y_4aXngGtQJx" : {
"data" : "2022-2-6",
"time" : "09:44:42",
"value" : 5
},
这是我正在使用的代码:
<html>
<head>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<script src="https://www.gstatic.com/firebasejs/3.7.8/firebase.js"></script>
<script src=" http://www.google.com/uds/modules/gviz/gviz-api.js"></script>
<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
<script src="https://www.google.com/jsapi"></script>
<script type="text/javascript">
// Initialize Firebase
var config = {
apiKey: "AIzaSyD0y-idPsXKkqOI8333yQE9NTTvF5cDh0M",
authDomain: "podlewanie-2.firebaseapp.com",
databaseURL: "https://podlewanie-2-default-rtdb.europe-west1.firebasedatabase.app",
projectId: "podlewanie-2",
storageBucket: "podlewanie-2.appspot.com",
messagingSenderId: "266746962201",
appId: "1:266746962201:web:1a4c60a5824162c560a588",
measurementId: "G-7QW1Z2DD7W"
};
firebase.initializeApp(config);
var database = firebase.database();
firebase.database().ref('/MOIST').once('value').then(function(snapshot) {
temps = snapshot.val();
console.log(temps);
google.charts.load('current', {
'packages': ['corechart', 'line']
});
google.charts.setOnLoadCallback(drawChart(temps));
});
function parse(temp) {
return (new Date(temp.replace(/-/g, '/'))).getTime()
}
function drawChart(temps) {
var array = $.map(temps, function(value, index) {
return [value];
});
var data = new google.visualization.DataTable();
data.addColumn('number', 'date');
data.addColumn('number', 'time');
data.addColumn('number', 'value');
var sort = function(a, b) {
return parse(a.time) - parse(b.time)
};
var tempData = array.sort(sort);
var output = [];
for (var i = 0; i < tempData.length; i++) {
var item = tempData[i];
output.push([
// parseFloat(parse(item.time)),
parseFloat(item.time),
parseFloat(item.date),
parseFloat(item.value)
]);
}
console.log(output);
data.addRows(output);
var options = {
chart: {
title: 'title',
subtitle: 'subtitle'
},
width: 900,
height: 500
};
var chart = new google.visualization.LineChart(document.getElementById('chart_div'));
console.log("data + options: " + data, options)
chart.draw(data, options);
}
google.charts.load('current', {
'packages': ['corechart', 'line']
});
google.charts.setOnLoadCallback(drawChart);
</script>
</head>
<body>
<div id="curve_chart" style="width: 900px; height: 500px"></div>
</body>
</html>
运行此代码后,我只看到白页。我会很感激你的帮助。
【问题讨论】:
标签: firebase-realtime-database google-visualization