hiii ...如何在firebase中制作增量计数器的任何建议 我已经在使用这段代码了
firebase.database().ref(‘myData/' ).once('value', function(qTotal) {
total = qTotal.numChildren() + 1;
console.log(" counter" + total);
var queId = firebase.database().ref(‘myData/').push({
counter : total,
dateCreated: Date()
}).key;
}
但有时numChildren()会在数据插入速度非常快时生成相同的计数器。
答案 0 :(得分:3)
如果您想以最简单的方式执行此操作,可以使用事务:
var ref = firebase.database().ref(‘myData/' );
ref.transaction(function(qTotal) {
var current = qTotal ? qTotal.numChildren() : 0;
var total = current + 1;
var queId = ref.push().key;
qtotal[queId] = {
counter : total,
dateCreated: Date()
};
return qTotal;
}
但是,增加许多并发用户的计数器将导致可伸缩性问题。每个用户都必须下载总数据才能向其中添加项目。
要详细了解此消息以及Firebase如何建议您对此类列表进行建模,请阅读以下博文:https://firebase.googleblog.com/2014/04/best-practices-arrays-in-firebase.html