我使用Flutter作为前端移动框架,Firebase实时数据库作为后端。我试图计算某个特定组件的点击次数,我从firebase获得了最近的点击次数,并将其递增1,然后保存回去。它工作得很好。这里的问题是,当我试图在firebase中直接重置计数时,dart中的DataSnapshot将接收旧计数。我甚至删除了节点,但它仍然检索非空的最近计数。下面是我的代码。
_buttonClicked() async {
DatabaseReference ref = FirebaseDatabase.instance
.reference()
.child('analitics')
.child('buttonclicks');
ref.keepSynced(true);
ref.once().then((DataSnapshot snap) {
if (snap.value == null) {
ref.set(
{'count': 1},
);
} else {
AnaliticsModel count = AnaliticsModel.fromSnapshot(snap);
int tempcount = count.count;
tempcount += 1;
ref.update(
{'count': tempcount},
);
}
});
}