每次重新启动Android应用时,Firebase中的投票计数都会重置

时间:2017-02-05 13:58:22

标签: android firebase firebase-realtime-database

我正在创建一个投票应用。 Firebase数据库会计算按钮的点击次数并显示该按钮。但是,在关闭应用程序并重新启动时,点击次数从零开始。即使应用程序关闭并重新启动而不是从零开始投票,我如何继续将投票数添加到子节点?

mainactivity.java

info

1 个答案:

答案 0 :(得分:3)

来自Firebase文档:

在处理可能被并发更新损坏的复杂数据时使用我们的交易功能

public void incrementCounter() {
firebase.runTransaction(new Transaction.Handler() {
    @Override
    public Transaction.Result doTransaction(final MutableData currentData) {
        if (currentData.getValue() == null) {
            currentData.setValue(1);
        } else {
            currentData.setValue((Long) currentData.getValue() + 1);
        }

        return Transaction.success(currentData);
    }

    @Override
    public void onComplete(FirebaseError firebaseError, boolean committed, DataSnapshot currentData) {
        if (firebaseError != null) {
            Log.d("Firebase counter increment failed.");
        } else {
            Log.d("Firebase counter increment succeeded.");
        }
    }
});
}