本文整理汇总了Java中com.google.firebase.database.Transaction类的典型用法代码示例。如果您正苦于以下问题:Java Transaction类的具体用法?Java Transaction怎么用?Java Transaction使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
Transaction类属于com.google.firebase.database包,在下文中一共展示了Transaction类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Java代码示例。
示例1: TransactionData
import com.google.firebase.database.Transaction; //导入依赖的package包/类
private TransactionData(
Path path,
Transaction.Handler handler,
ValueEventListener outstandingListener,
TransactionStatus status,
boolean applyLocally,
long order) {
this.path = path;
this.handler = handler;
this.outstandingListener = outstandingListener;
this.status = status;
this.retryCount = 0;
this.applyLocally = applyLocally;
this.order = order;
this.abortReason = null;
this.currentInputSnapshot = null;
this.currentOutputSnapshotRaw = null;
this.currentOutputSnapshotResolved = null;
}
开发者ID:firebase,项目名称:firebase-admin-java,代码行数:20,代码来源:Repo.java
示例2: runPostViewsCountTransition
import com.google.firebase.database.Transaction; //导入依赖的package包/类
public static void runPostViewsCountTransition(DatabaseReference postRef) {
postRef.runTransaction(new Transaction.Handler() {
@Override
public Transaction.Result doTransaction(MutableData mutableData) {
Post post = mutableData.getValue(Post.class);
if (post == null) {
return Transaction.success(mutableData);
}
int viewsCount = post.getViews() + 1;
post.setViews(viewsCount);
mutableData.setValue(post);
return Transaction.success(mutableData);
}
@Override
public void onComplete(DatabaseError databaseError, boolean b, DataSnapshot dataSnapshot) {
showLog("runCommentsCountTransition " + (databaseError != null));
/* if (databaseError == null) {
errorListener.onError();
}*/
}
});
}
开发者ID:pedromassango,项目名称:Programmers,代码行数:27,代码来源:Worker.java
示例3: updateProfileLikeCountAfterRemovingPost
import com.google.firebase.database.Transaction; //导入依赖的package包/类
public void updateProfileLikeCountAfterRemovingPost(Post post) {
DatabaseReference profileRef = database.getReference("profiles/" + post.getAuthorId() + "/likesCount");
final long likesByPostCount = post.getLikesCount();
profileRef.runTransaction(new Transaction.Handler() {
@Override
public Transaction.Result doTransaction(MutableData mutableData) {
Integer currentValue = mutableData.getValue(Integer.class);
if (currentValue != null && currentValue >= likesByPostCount) {
mutableData.setValue(currentValue - likesByPostCount);
}
return Transaction.success(mutableData);
}
@Override
public void onComplete(DatabaseError databaseError, boolean b, DataSnapshot dataSnapshot) {
LogUtil.logInfo(TAG, "Updating likes count transaction is completed.");
}
});
}
开发者ID:rozdoum,项目名称:social-app-android,代码行数:23,代码来源:DatabaseHelper.java
示例4: decrementCommentsCount
import com.google.firebase.database.Transaction; //导入依赖的package包/类
public void decrementCommentsCount(String postId, final OnTaskCompleteListener onTaskCompleteListener) {
DatabaseReference postRef = database.getReference("posts/" + postId + "/commentsCount");
postRef.runTransaction(new Transaction.Handler() {
@Override
public Transaction.Result doTransaction(MutableData mutableData) {
Integer currentValue = mutableData.getValue(Integer.class);
if (currentValue != null && currentValue >= 1) {
mutableData.setValue(currentValue - 1);
}
return Transaction.success(mutableData);
}
@Override
public void onComplete(DatabaseError databaseError, boolean b, DataSnapshot dataSnapshot) {
LogUtil.logInfo(TAG, "Updating comments count transaction is completed.");
if (onTaskCompleteListener != null) {
onTaskCompleteListener.onTaskComplete(true);
}
}
});
}
开发者ID:rozdoum,项目名称:social-app-android,代码行数:23,代码来源:DatabaseHelper.java
示例5: incrementWatchersCount
import com.google.firebase.database.Transaction; //导入依赖的package包/类
public void incrementWatchersCount(String postId) {
DatabaseReference postRef = database.getReference("posts/" + postId + "/watchersCount");
postRef.runTransaction(new Transaction.Handler() {
@Override
public Transaction.Result doTransaction(MutableData mutableData) {
Integer currentValue = mutableData.getValue(Integer.class);
if (currentValue == null) {
mutableData.setValue(1);
} else {
mutableData.setValue(currentValue + 1);
}
return Transaction.success(mutableData);
}
@Override
public void onComplete(DatabaseError databaseError, boolean b, DataSnapshot dataSnapshot) {
LogUtil.logInfo(TAG, "Updating Watchers count transaction is completed.");
}
});
}
开发者ID:rozdoum,项目名称:social-app-android,代码行数:22,代码来源:DatabaseHelper.java
示例6: subscribe
import com.google.firebase.database.Transaction; //导入依赖的package包/类
@Override public void subscribe(final CompletableEmitter emitter) {
final Transaction.Handler handler = new Transaction.Handler() {
@Override public Transaction.Result doTransaction(MutableData mutableData) {
try {
return task.apply(mutableData);
} catch (Exception e) {
//TODO: Is this enough?
throw new RuntimeException(e);
}
}
@Override public void onComplete(DatabaseError databaseError, boolean committed,
DataSnapshot dataSnapshot) {
if (!emitter.isDisposed()) {
if (null == databaseError) {
emitter.onComplete();
} else {
emitter.onError(databaseError.toException());
}
}
}
};
ref.runTransaction(handler, fireLocalEvents);
}
开发者ID:b3er,项目名称:RxFirebase2,代码行数:26,代码来源:RunTransactionOnSubscribe.java
示例7: doTransaction
import com.google.firebase.database.Transaction; //导入依赖的package包/类
public void doTransaction(String uid, final OnMilestoneTransaction listener){
FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
if(user!=null) {
String key;
if(uid==null || uid.isEmpty())
return;
DatabaseReference mRef = mDatabase.child(Constants.FIREBASE_MILESTONES).child(user.getUid()).child(SessionSingleton.getInstance().currentCar.getid()).child(uid);
mRef.runTransaction(new Transaction.Handler() {
@Override
public Transaction.Result doTransaction(MutableData mutableData) {
Milestone milestone = mutableData.getValue(Milestone.class);
if(milestone==null)
return Transaction.success(mutableData);
milestone = listener.onTransaction(milestone);
mutableData.setValue(milestone);
return Transaction.success(mutableData);
}
@Override
public void onComplete(DatabaseError databaseError, boolean b, DataSnapshot dataSnapshot) {
}
});
}
}
开发者ID:Gaso-UFS,项目名称:gaso,代码行数:26,代码来源:MilestoneDAO.java
示例8: incrementUserSongRequestCount
import com.google.firebase.database.Transaction; //导入依赖的package包/类
public void incrementUserSongRequestCount(String partyTitle, String userId) {
databaseReference
.child(partyTitle)
.child(FirebaseConstants.CHILD_USERS)
.child(userId)
.child(FirebaseConstants.CHILD_USERS_SONGS_REQUESTED)
.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);
}
@Override
public void onComplete(DatabaseError databaseError, boolean b, DataSnapshot dataSnapshot) {
}
});
}
开发者ID:ZinoKader,项目名称:SpotiQ,代码行数:25,代码来源:PartiesRepository.java
示例9: setLeader
import com.google.firebase.database.Transaction; //导入依赖的package包/类
@Override
public void setLeader(String deckId, final String leaderId) {
DatabaseReference deckReference = mUserReference.child(deckId).child("leaderId");
// Transactions will ensure concurrency errors don't occur.
deckReference.runTransaction(new Transaction.Handler() {
@Override
public Transaction.Result doTransaction(MutableData mutableData) {
// Set value and report transaction success.
mutableData.setValue(leaderId);
return Transaction.success(mutableData);
}
@Override
public void onComplete(DatabaseError databaseError, boolean b,
DataSnapshot dataSnapshot) {
// Do nothing.
}
});
}
开发者ID:jamieadkins95,项目名称:Roach,代码行数:21,代码来源:DecksInteractorFirebase.java
示例10: renameDeck
import com.google.firebase.database.Transaction; //导入依赖的package包/类
@Override
public void renameDeck(final String deckId, final String newName) {
DatabaseReference deckReference = mUserReference.child(deckId).child("name");
// Transactions will ensure concurrency errors don't occur.
deckReference.runTransaction(new Transaction.Handler() {
@Override
public Transaction.Result doTransaction(MutableData mutableData) {
// Set value and report transaction success.
mutableData.setValue(newName);
return Transaction.success(mutableData);
}
@Override
public void onComplete(DatabaseError databaseError, boolean b,
DataSnapshot dataSnapshot) {
// Do nothing.
}
});
}
开发者ID:jamieadkins95,项目名称:Roach,代码行数:21,代码来源:DecksInteractorFirebase.java
示例11: deleteDeck
import com.google.firebase.database.Transaction; //导入依赖的package包/类
@Override
public void deleteDeck(final String deckId) {
DatabaseReference deckReference = mUserReference.child(deckId).child("deleted");
// Transactions will ensure concurrency errors don't occur.
deckReference.runTransaction(new Transaction.Handler() {
@Override
public Transaction.Result doTransaction(MutableData mutableData) {
// Set value and report transaction success.
mutableData.setValue(true);
return Transaction.success(mutableData);
}
@Override
public void onComplete(DatabaseError databaseError, boolean b,
DataSnapshot dataSnapshot) {
// Do nothing.
}
});
}
开发者ID:jamieadkins95,项目名称:Roach,代码行数:21,代码来源:DecksInteractorFirebase.java
示例12: runTransactionOnComplete
import com.google.firebase.database.Transaction; //导入依赖的package包/类
private void runTransactionOnComplete(Transaction.Handler handler, DatabaseError error,
boolean committed, DataSnapshot snapshot) {
try {
handler.onComplete(error, committed, snapshot);
} catch (Exception e) {
operationLogger.error("Exception in transaction onComplete callback", e);
}
}
开发者ID:firebase,项目名称:firebase-admin-java,代码行数:9,代码来源:Repo.java
示例13: onStarClicked
import com.google.firebase.database.Transaction; //导入依赖的package包/类
private void onStarClicked(DatabaseReference postRef) {
postRef.runTransaction(new Transaction.Handler() {
@Override
public Transaction.Result doTransaction(MutableData mutableData) {
Post p = mutableData.getValue(Post.class);
if (p == null) {
return Transaction.success(mutableData);
}
if (p.stars.containsKey(getUid())) {
// Unstar the post and remove self from stars
p.starCount = p.starCount - 1;
p.stars.remove(getUid());
} else {
// Star the post and add self to stars
p.starCount = p.starCount + 1;
p.stars.put(getUid(), true);
}
// Set value and report transaction success
mutableData.setValue(p);
return Transaction.success(mutableData);
}
@Override
public void onComplete(DatabaseError databaseError, boolean b,
DataSnapshot dataSnapshot) {
// Transaction completed
Log.d(TAG, "postTransaction:onComplete:" + databaseError);
}
});
}
开发者ID:braulio94,项目名称:Quadro,代码行数:33,代码来源:PostListFragment.java
示例14: runTransaction
import com.google.firebase.database.Transaction; //导入依赖的package包/类
/**
* Run a transaction on the data at this location. For more information on running transactions, see
*
* @param ref reference represents a particular location in your database.
* @param fireLocalEvents boolean which allow to receive calls of your transaction in your local device.
* @param transactionValue value of the transaction.
* @return a {@link Single} which emits the final {@link DataSnapshot} value if the transaction success.
*/
@NonNull
public static Single<DataSnapshot> runTransaction(@NonNull final DatabaseReference ref,
@NonNull final boolean fireLocalEvents,
@NonNull final long transactionValue) {
return Single.create(new SingleOnSubscribe<DataSnapshot>() {
@Override public void subscribe(final SingleEmitter emitter) throws Exception {
ref.runTransaction(new Transaction.Handler() {
@Override
public Transaction.Result doTransaction(MutableData mutableData) {
Integer currentValue = mutableData.getValue(Integer.class);
if (currentValue == null) {
mutableData.setValue(transactionValue);
} else {
mutableData.setValue(currentValue + transactionValue);
}
return Transaction.success(mutableData);
}
@Override
public void onComplete(DatabaseError databaseError, boolean b, DataSnapshot dataSnapshot) {
if (databaseError != null) {
emitter.onError(new RxFirebaseDataException(databaseError));
} else {
emitter.onSuccess(dataSnapshot);
}
}
}, fireLocalEvents);
}
});
}
开发者ID:DVT,项目名称:showcase-android,代码行数:39,代码来源:RxFirebaseDatabase.java
示例15: transaction
import com.google.firebase.database.Transaction; //导入依赖的package包/类
/**
* {@inheritDoc}
*/
@Override
@SuppressWarnings("unchecked")
public <T, R extends T> void transaction(final Class<T> dataType, final TransactionCallback<R> transactionCallback, final CompleteCallback completeCallback)
{
databaseReference().runTransaction(new Transaction.Handler() {
@Override
public Transaction.Result doTransaction(MutableData mutableData)
{
R transactionData = null;
if (dataType == List.class || dataType == Map.class) {
transactionData = (R) mutableData.getValue();
} else {
transactionData = (R) mutableData.getValue(dataType);
}
mutableData.setValue(transactionCallback.run(transactionData));
return Transaction.success(mutableData);
}
@Override
public void onComplete(DatabaseError databaseError, boolean b, DataSnapshot dataSnapshot)
{
if (completeCallback == null) return;
if (databaseError != null) {
completeCallback.onError(databaseError.toException());
} else {
completeCallback.onSuccess();
}
}
});
terminateOperation();
}
开发者ID:mk-5,项目名称:gdx-fireapp,代码行数:35,代码来源:Database.java
示例16: runCommentsCountTransition
import com.google.firebase.database.Transaction; //导入依赖的package包/类
/**
* Decrement or increment commentsCount
*
* @param postRef the Post reference to run transaction
* @param increment if TRUE it wil increment, if FALSE it will decrement.
*/
public static void runCommentsCountTransition(DatabaseReference postRef, final boolean increment) {
postRef.runTransaction(new Transaction.Handler() {
@Override
public Transaction.Result doTransaction(MutableData mutableData) {
Post post = mutableData.getValue(Post.class);
if (post == null) {
return Transaction.success(mutableData);
}
int commentsCount = post.getCommentsCount();
int data = increment ? commentsCount + 1 : commentsCount - 1;
post.setCommentsCount(data);
//update localy
RepositoryManager.getInstance()
.getPostsRepository()
.updateLocaly(post);
mutableData.setValue(post);
return Transaction.success(mutableData);
}
@Override
public void onComplete(DatabaseError databaseError, boolean b, DataSnapshot dataSnapshot) {
showLog("runCommentsCountTransition: " + (databaseError != null));
}
});
}
开发者ID:pedromassango,项目名称:Programmers,代码行数:36,代码来源:Transations.java
示例17: setup
import com.google.firebase.database.Transaction; //导入依赖的package包/类
@Before public void setup() {
MockitoAnnotations.initMocks(this);
childEventListener = ArgumentCaptor.forClass(ChildEventListener.class);
valueEventListener = ArgumentCaptor.forClass(ValueEventListener.class);
transactionHandler = ArgumentCaptor.forClass(Transaction.Handler.class);
onCompleteListener = ArgumentCaptor.forClass(OnCompleteListener.class);
}
开发者ID:b3er,项目名称:RxFirebase2,代码行数:9,代码来源:RxFirebaseDatabaseTest.java
示例18: onLikeClicked
import com.google.firebase.database.Transaction; //导入依赖的package包/类
private void onLikeClicked(final DatabaseReference likeRef) {
likeRef.runTransaction(new Transaction.Handler() {
@Override
public Transaction.Result doTransaction(MutableData mutableData) {
Photo p = mutableData.getValue(Photo.class);
if (p == null) {
return Transaction.success(mutableData);
}
if (p.likes.containsKey(mUserId)) {
// Unlike the photo and remove self from likes
p.starCount = p.starCount - 1;
p.likes.remove(mUserId);
Log.d(TAG, "doTransaction: Unlike");
} else {
// Like the photo
Log.d(TAG, "doTransaction: Like");
p.starCount = p.starCount + 1;
p.likes.put(mUserId, true);
}
// Set value and report transaction success
mutableData.setValue(p);
return Transaction.success(mutableData);
}
@Override
public void onComplete(DatabaseError databaseError, boolean b,
DataSnapshot dataSnapshot) {
// Transaction completed
Log.d(TAG, "postTransaction:onComplete:" + databaseError);
}
});
}
开发者ID:robertmathew,项目名称:KeralaAttractions,代码行数:34,代码来源:DetailActivity.java
示例19: incrementApkDownloads
import com.google.firebase.database.Transaction; //导入依赖的package包/类
public void incrementApkDownloads(Apk app) {
databaseReference.child(app.getKey()).child("downloads").runTransaction(
new Transaction.Handler() {
@Override
public Transaction.Result doTransaction(MutableData mutableData) {
Long updatedViews = mutableData.getValue(Long.class) + 1;
mutableData.setValue(updatedViews);
return Transaction.success(mutableData);
}
@Override
public void onComplete(DatabaseError databaseError, boolean b, DataSnapshot dataSnapshot) {
}
});
}
开发者ID:ITVlab,项目名称:TvAppRepo,代码行数:16,代码来源:RepoDatabase.java
示例20: incrementApkViews
import com.google.firebase.database.Transaction; //导入依赖的package包/类
public void incrementApkViews(Apk app) {
databaseReference.child(app.getKey()).child("views").runTransaction(
new Transaction.Handler() {
@Override
public Transaction.Result doTransaction(MutableData mutableData) {
Long updatedViews = mutableData.getValue(Long.class) + 1;
mutableData.setValue(updatedViews);
return Transaction.success(mutableData);
}
@Override
public void onComplete(DatabaseError databaseError, boolean b, DataSnapshot dataSnapshot) {
}
});
}
开发者ID:ITVlab,项目名称:TvAppRepo,代码行数:16,代码来源:RepoDatabase.java
注:本文中的com.google.firebase.database.Transaction类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论