Estoy tratando de hacer un código que originalmente funcionó con Arduino-Code y Javascript (Three.js), para que funcione con Firebase y Three.js, pero me encontré con un pequeño problema. Se supone que el código mueve un cuadrado hacia arriba y hacia abajo según un sensor GY-521.
Antes de cambiarme a Firebase, se invocaba EventSource en /events que se configuró en el código de Arduino. Ahora no tengo idea de cómo hacer que Firebase funcione así. ¿Es posible hacer Evensource con Firebase de esta manera?
Aquí está el fragmento de código de script.js con EventSource :
// Create events for the sensor readings if (!!window.EventSource) { var source = new EventSource('/events'); source.addEventListener('open', function(e) { console.log("Events Connected"); }, false); source.addEventListener('error', function(e) { if (e.target.readyState != EventSource.OPEN) { console.log("Events Disconnected"); } }, false); source.addEventListener('gyro_readings', function(e) { //console.log("gyro_readings", e.data); var obj = JSON.parse(e.data); document.getElementById("gyroX").innerHTML = obj.gyroX; document.getElementById("gyroY").innerHTML = obj.gyroY; document.getElementById("gyroZ").innerHTML = obj.gyroZ; // Change cube rotation after receiving the readinds //cube.position.x = obj.gyroY; //cube.position.z = obj.gyroX; cube.position.y = obj.gyroX; renderer.render(scene, camera); }, false); Aquí es donde inicializo la base de datos y uso let readings para obtener lecturas de la base de datos en tiempo real en Firebase:
const app = initializeApp(firebaseConfig); const db = getDatabase(app); let readings; //if wanting to use gyroX from reading then type readings.gyroX, if I want to use gyroY then type readings.gyroY //get gyroX value const gyroxReading = ref(db, "UsersData" + "/rQmuMKv9tgewbq6m5gwH9BmxN8U2"); console.log(gyroxReading); onValue(gyroxReading, (snapshot) => { readings = snapshot.val(); console.log(readings.gyroX); });También una captura de pantalla de la base de datos: