html:
<div class="container">
<form action="#" onsubmit="ejecucion()" class="was-validated">
<div class="form-group">
<label for="sleep">Tiempo entre mediciones:</label>
<input type="text" class="form-control" id="sleep" placeholder="Tiempo en minutos entre mediciones (por defecto es 2 minutos)" name="sleep" required>
<div class="valid-feedback">OK!</div>
<div class="invalid-feedback">Ingrese un valor! Unicamente numeros!</div>
</div>
<div class="form-group">
<label for="points">Cantidad de puntos en grafico/s:</label>
<input type="text" class="form-control" id="points" placeholder="Ingrese la cantidad de puntos que desea ver en los graficos (por defecto es 300 puntos)" name="points" required>
<div class="valid-feedback">Valid.</div>
<div class="invalid-feedback">Ingrese un valor! Unicamente numeros!</div>
</div>
<div class="form-group form-check">
<label class="form-check-label">
<input class="form-check-input" type="checkbox" name="remember" required> Verifique los valores introducidos
<div class="valid-feedback">OK!</div>
<div class="invalid-feedback"></div>
</label>
</div>
<button type="submit" class="btn btn-primary">Configurar</button>
</form>
</div>
javascript:
const config = {
apiKey: "",
authDomain: "",
databaseURL: "",
projectId: "",
storageBucket: "",
messagingSenderId: "",
};
firebase.initializeApp(config);
function ejecucion(){
var sleep = document.getElementById("sleep").value;
var points = document.getElementById("points").value;
firebase.database().ref('dispositivos/' + mac + "/config/control").set({
delay: sleep,
points: points
});
location.replace("home.html"); // Redirecciono al inicio
}
如果我放置了一个cosole.log,它将在提交表单时运行,但是firebase写入或重定向均无效。
我不放置数据库的配置,因为它不属于我,无论如何,在我的测试代码中,由于我成功读取了数据库,因此配置正确。 执行代码时,控制台上没有错误。
答案 0 :(得分:0)
写入Firebase实时数据库是异步发生的。当前,在将写操作发送到数据库之前,您已离开页面。要等到写入完成,请使用then()
块:
firebase.database().ref('dispositivos/' + mac + "/config/control").set({
delay: sleep,
points: points
}).then(function() {
location.replace("home.html"); // Redirecciono al inicio
})