如何匹配文本框值,然后将特定数据更新到firebase Web

时间:2018-02-22 11:34:00

标签: firebase firebase-realtime-database

我的数据库:

inside the image is the data inside the firebase

var carplate = document.getElementById("carplate").value;


var firebaseRef = firebase.database().ref('ClampedCar');

firebaseRef.orderByChild('carplate').equalTo(carplate).update({stat:"Unclamped"});
<label style="color: #f2f2f2">Car Plate Number</label> <br/>
<input type="text" name="carplate" id="carplate" maxlength="8" />

2 个答案:

答案 0 :(得分:0)

您只能在数据库引用上调用update()。要获得与查询匹配的节点的引用,必须先执行查询。

var query = firebaseRef.orderByChild('carplate').equalTo(carplate);
query.once('value', function(snapshot) {
  snapshot.forEach(function(child) {
    child.ref.update({stat:"Unclamped"});
  })
});

由于查询可能与多个子项匹配,因此需要snapshot.forEach()循环。 如果不是这种情况,即您的carplate已经是唯一的,您可以考虑将数据模型更改为:

ClampedCar
  carPlate1: "Clamped"
  carPlate2: "Clamped"

使用此模型,您不需要查询来更改状态,只需执行以下操作:

firebaseRef.child(carplate).set("Unclamped")

答案 1 :(得分:0)

我会对匹配进行验证。有可能这样做吗?

&#13;
&#13;
var exist =query.once('value', function(snapshot) {
  snapshot.forEach(function(child) {
    child.ref.update({stat:"Unclamped"});
  })
});


if(exist){
	window.alert("Status updated")
	
}else{
	
	window.alert("Car Plate doesnot match");
	
}
&#13;
&#13;
&#13;