如何同步firebase数据?

时间:2015-11-28 09:37:08

标签: android firebase

enter image description here

我使用firebase来存储我的数据。这就是我的firebase数据库的样子。 在我的代码中,我试图在按钮点击事件上生成一个新的唯一appointment-id。如果当前appointment-id为88,则当用户按下其应用上的按钮时,它应该变为89,并且此appointment-id被指定为他的唯一appointment-id。我面临的问题是,当两个或多个用户同时按下其应用上的按钮时,会为这两个用户分配相同的appointment-id

我希望我的appointment-id能够同步,但一次只能有一个用户访问它。这可能吗?我怎样才能实现它?感谢。

1 个答案:

答案 0 :(得分:4)

Firebase有交易,可以帮助您使用增量计数器

Firebase apptRef = new Firebase("<my-firebase-app>");
apptRef.runTransaction(new Transaction.Handler() {
    @Override
    public Transaction.Result doTransaction(MutableData currentData) {
        if(currentData.getValue() == null) {
            currentData.setValue(1);
        } else {
            currentData.setValue((Long) currentData.getValue() + 1);
        }
        return Transaction.success(currentData); //we can also abort by calling Transaction.abort()
    }
    @Override
    public void onComplete(FirebaseError firebaseError, boolean committed, DataSnapshot currentData) {
        //This method will be called once with the results of the transaction.
    }
});

阅读Firebase docs了解更多信息。