我使用firebase
来存储我的数据。这就是我的firebase数据库的样子。
在我的代码中,我试图在按钮点击事件上生成一个新的唯一appointment-id
。如果当前appointment-id
为88,则当用户按下其应用上的按钮时,它应该变为89,并且此appointment-id
被指定为他的唯一appointment-id
。我面临的问题是,当两个或多个用户同时按下其应用上的按钮时,会为这两个用户分配相同的appointment-id
。
我希望我的appointment-id
能够同步,但一次只能有一个用户访问它。这可能吗?我怎样才能实现它?感谢。
答案 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了解更多信息。