com.google.firebase.database.Transaction Java Examples
The following examples show how to use
com.google.firebase.database.Transaction.
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: CommentInteractor.java From social-app-android with Apache License 2.0 | 6 votes |
public void decrementCommentsCount(String postId, final OnTaskCompleteListener onTaskCompleteListener) { DatabaseReference postRef = databaseHelper .getDatabaseReference() .child(DatabaseHelper.POSTS_DB_KEY + "/" + 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); } } }); }
Example #2
Source File: PostInteractor.java From social-app-android with Apache License 2.0 | 6 votes |
public void incrementWatchersCount(String postId) { DatabaseReference postRef = databaseHelper.getDatabaseReference().child(DatabaseHelper.POSTS_DB_KEY + "/" + 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."); } }); }
Example #3
Source File: ProfileInteractor.java From social-app-android with Apache License 2.0 | 6 votes |
public void updateProfileLikeCountAfterRemovingPost(Post post) { DatabaseReference profileRef = databaseHelper .getDatabaseReference() .child(DatabaseHelper.PROFILES_DB_KEY + "/" + 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."); } }); }
Example #4
Source File: SignInActivity.java From budgetto with MIT License | 6 votes |
private void runTransaction(DatabaseReference userReference) { showProgressView(); userReference.runTransaction(new Transaction.Handler() { @Override public Transaction.Result doTransaction(MutableData mutableData) { User user = mutableData.getValue(User.class); if (user == null) { mutableData.setValue(new User()); return Transaction.success(mutableData); } return Transaction.success(mutableData); } @Override public void onComplete(DatabaseError databaseError, boolean committed, DataSnapshot dataSnapshot) { if (committed) { startActivity(new Intent(SignInActivity.this, MainActivity.class)); finish(); } else { errorTextView.setText("Firebase create user transaction failed."); hideProgressView(); } } }); }
Example #5
Source File: Repo.java From firebase-android-sdk with Apache License 2.0 | 6 votes |
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; }
Example #6
Source File: Repo.java From firebase-admin-java with Apache License 2.0 | 6 votes |
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; }
Example #7
Source File: TransactionHandler.java From gdx-fireapp with Apache License 2.0 | 6 votes |
@Override @SuppressWarnings("unchecked") public Transaction.Result doTransaction(MutableData mutableData) { try { if (mutableData.getValue() == null) { mutableData.setValue(transactionFunction.apply((R) DefaultTypeRecognizer.getDefaultValue(dataType))); return Transaction.success(mutableData); } MapConversion mapConversionAnnotation = null; R transactionData; if (promise.getThenConsumer() != null) { mapConversionAnnotation = AnnotationFinder.getMethodAnnotation(MapConversion.class, promise.getThenConsumer()); } if (mapConversionAnnotation != null) { transactionData = (R) mutableData.getValue(mapConversionAnnotation.value()); } else { transactionData = (R) mutableData.getValue(); } mutableData.setValue(transactionFunction.apply(transactionData)); return Transaction.success(mutableData); } catch (Exception e) { GdxFIRLogger.error(TRANSACTION_ERROR, e); return Transaction.abort(); } }
Example #8
Source File: TransactionHandlerTest.java From gdx-fireapp with Apache License 2.0 | 6 votes |
@Test public void doTransaction() { // Given Function transactionFunction = Mockito.mock(Function.class); FuturePromise promise = Mockito.mock(FuturePromise.class); TransactionHandler transactionHandler = new TransactionHandler(Long.class, transactionFunction, promise); MutableData mutableData = Mockito.mock(MutableData.class); Mockito.when(mutableData.getValue()).thenReturn("test_value"); // When transactionHandler.doTransaction(mutableData); // Then PowerMockito.verifyStatic(Transaction.class, VerificationModeFactory.times(1)); Transaction.success(Mockito.nullable(MutableData.class)); }
Example #9
Source File: CommentInteractor.java From social-app-android with Apache License 2.0 | 6 votes |
public void decrementCommentsCount(String postId, final OnTaskCompleteListener onTaskCompleteListener) { DatabaseReference postRef = databaseHelper .getDatabaseReference() .child(DatabaseHelper.POSTS_DB_KEY + "/" + 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); } } }); }
Example #10
Source File: PostInteractor.java From social-app-android with Apache License 2.0 | 6 votes |
public void incrementWatchersCount(String postId) { DatabaseReference postRef = databaseHelper.getDatabaseReference().child(DatabaseHelper.POSTS_DB_KEY + "/" + 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."); } }); }
Example #11
Source File: ProfileInteractor.java From social-app-android with Apache License 2.0 | 6 votes |
public void updateProfileLikeCountAfterRemovingPost(Post post) { DatabaseReference profileRef = databaseHelper .getDatabaseReference() .child(DatabaseHelper.PROFILES_DB_KEY + "/" + 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."); } }); }
Example #12
Source File: RxValue.java From rxfirebase with Apache License 2.0 | 5 votes |
/** * @param emitter * @param function * @return */ @NonNull @CheckReturnValue public static Transaction.Handler transaction( @NonNull final SingleEmitter<DataSnapshot> emitter, @NonNull final Function<MutableData, Transaction.Result> function) { return new Transaction.Handler() { @Override public Transaction.Result doTransaction(MutableData mutableData) { try { return function.apply(mutableData); } catch (Exception e) { throw new RuntimeException(e); } } @Override public void onComplete(@Nullable DatabaseError databaseError, boolean committed, @NonNull DataSnapshot dataSnapshot) { if (!emitter.isDisposed()) { if (null == databaseError) { emitter.onSuccess(dataSnapshot); } else { emitter.onError(databaseError.toException()); } } } }; }
Example #13
Source File: RxDatabaseReferenceTest.java From rxfirebase with Apache License 2.0 | 5 votes |
@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); }
Example #14
Source File: RxFirebaseDatabase.java From rxfirebase with Apache License 2.0 | 5 votes |
/** * @param ref * @param function * @return */ @NonNull @CheckReturnValue public static Single<DataSnapshot> runTransaction( @NonNull final DatabaseReference ref, @NonNull final Function<MutableData, Transaction.Result> function) { return RxValue.transaction(ref, function); }
Example #15
Source File: RxFirebaseDatabase.java From rxfirebase with Apache License 2.0 | 5 votes |
/** * @param ref * @param fireLocalEvents * @param function * @return * ref.runTransaction(handler, fireLocalEvents); */ @NonNull @CheckReturnValue public static Single<DataSnapshot> runTransaction( @NonNull final DatabaseReference ref, @NonNull final Function<MutableData, Transaction.Result> function, final boolean fireLocalEvents) { return RxValue.transaction(ref, function, fireLocalEvents); }
Example #16
Source File: RxFirebaseDatabaseTest.java From rxfirebase with Apache License 2.0 | 5 votes |
@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); }
Example #17
Source File: RxDatabaseReference.java From rxfirebase with Apache License 2.0 | 5 votes |
/** * @param ref * @param function * @return */ @NonNull @CheckReturnValue public static Single<DataSnapshot> transaction( @NonNull final DatabaseReference ref, @NonNull final Function<MutableData, Transaction.Result> function) { return Single.create(new SingleOnSubscribe<DataSnapshot>() { @Override public void subscribe( @NonNull final SingleEmitter<DataSnapshot> emit) throws Exception { ref.runTransaction(transaction(emit, function)); } }); }
Example #18
Source File: RxDatabaseReference.java From rxfirebase with Apache License 2.0 | 5 votes |
/** * @param ref * @param function * @param fireLocalEvents * @return */ @NonNull @CheckReturnValue public static Single<DataSnapshot> transaction( @NonNull final DatabaseReference ref, @NonNull final Function<MutableData, Transaction.Result> function, final boolean fireLocalEvents) { return Single.create(new SingleOnSubscribe<DataSnapshot>() { @Override public void subscribe( @NonNull final SingleEmitter<DataSnapshot> emit) throws Exception { ref.runTransaction(transaction(emit, function), fireLocalEvents); } }); }
Example #19
Source File: RxDatabaseReference.java From rxfirebase with Apache License 2.0 | 5 votes |
/** * @param emitter * @param function * @return */ @NonNull @CheckReturnValue public static Transaction.Handler transaction( @NonNull final SingleEmitter<DataSnapshot> emitter, @NonNull final Function<MutableData, Transaction.Result> function) { return new Transaction.Handler() { @Override public Transaction.Result doTransaction(MutableData mutableData) { try { return function.apply(mutableData); } catch (Exception e) { throw new RuntimeException(e); } } @Override public void onComplete(@Nullable DatabaseError databaseError, boolean committed, @NonNull DataSnapshot dataSnapshot) { if (!emitter.isDisposed()) { if (null == databaseError) { emitter.onSuccess(dataSnapshot); } else { emitter.onError(databaseError.toException()); } } } }; }
Example #20
Source File: RxValue.java From rxfirebase with Apache License 2.0 | 5 votes |
/** * @param ref * @param function * @param fireLocalEvents * @return */ @NonNull @CheckReturnValue public static Single<DataSnapshot> transaction( @NonNull final DatabaseReference ref, @NonNull final Function<MutableData, Transaction.Result> function, final boolean fireLocalEvents) { return Single.create(new SingleOnSubscribe<DataSnapshot>() { @Override public void subscribe( @NonNull final SingleEmitter<DataSnapshot> emit) throws Exception { ref.runTransaction(transaction(emit, function), fireLocalEvents); } }); }
Example #21
Source File: RxValue.java From rxfirebase with Apache License 2.0 | 5 votes |
/** * @param ref * @param function * @return */ @NonNull @CheckReturnValue public static Single<DataSnapshot> transaction( @NonNull final DatabaseReference ref, @NonNull final Function<MutableData, Transaction.Result> function) { return Single.create(new SingleOnSubscribe<DataSnapshot>() { @Override public void subscribe( @NonNull final SingleEmitter<DataSnapshot> emit) throws Exception { ref.runTransaction(transaction(emit, function)); } }); }
Example #22
Source File: RepoDatabase.java From TvAppRepo with Apache License 2.0 | 5 votes |
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) { } }); }
Example #23
Source File: RepoDatabase.java From TvAppRepo with Apache License 2.0 | 5 votes |
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) { } }); }
Example #24
Source File: PostListFragment.java From quickstart-android with Apache License 2.0 | 5 votes |
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 committed, DataSnapshot currentData) { // Transaction completed Log.d(TAG, "postTransaction:onComplete:" + databaseError); } }); }
Example #25
Source File: ClusterMapContributeEditActivity.java From intra42 with Apache License 2.0 | 5 votes |
void save() { app.firebaseRefClusterMapContribute.child(clusterSlug).runTransaction(new Transaction.Handler() { @NonNull @Override public Transaction.Result doTransaction(@NonNull MutableData mutableData) { Cluster clusterMutable = mutableData.getValue(Cluster.class); if (clusterMutable == null) { return Transaction.success(mutableData); } clusterMutable.width = cluster.width; clusterMutable.height = cluster.height; clusterMutable.map = cluster.map; Map<String, Object> export = clusterMutable.toMap(); mutableData.setValue(export); return Transaction.success(mutableData); } @Override public void onComplete(DatabaseError databaseError, boolean b, DataSnapshot dataSnapshot) { // Transaction completed if (databaseError != null) FirebaseCrashlytics.getInstance().log("postTransaction:onComplete:" + databaseError); } }); }
Example #26
Source File: TransactionHandlerTest.java From gdx-fireapp with Apache License 2.0 | 5 votes |
@Override public void setup() throws Exception { super.setup(); PowerMockito.mockStatic(MutableData.class); PowerMockito.mockStatic(Transaction.class); PowerMockito.mockStatic(GdxFIRLogger.class); }
Example #27
Source File: Repo.java From firebase-admin-java with Apache License 2.0 | 5 votes |
private void runTransactionOnComplete(Transaction.Handler handler, DatabaseError error, boolean committed, DataSnapshot snapshot) { try { handler.onComplete(error, committed, snapshot); } catch (Exception e) { logger.error("Exception in transaction onComplete callback", e); } }
Example #28
Source File: ChatActivity.java From FChat with MIT License | 4 votes |
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_chat); parent_view = findViewById(android.R.id.content); pfbd = new ParseFirebaseData(this); set = new SettingsAPI(this); // animation transition ViewCompat.setTransitionName(parent_view, KEY_FRIEND); // initialize conversation data Intent intent = getIntent(); friend = (Friend) intent.getExtras().getSerializable(KEY_FRIEND); initToolbar(); iniComponen(); chatNode_1 = set.readSetting(Constants.PREF_MY_ID) + "-" + friend.getId(); chatNode_2 = friend.getId() + "-" + set.readSetting(Constants.PREF_MY_ID); valueEventListener=new ValueEventListener() { @Override public void onDataChange(DataSnapshot dataSnapshot) { Log.d(Constants.LOG_TAG,"Data changed from activity"); if (dataSnapshot.hasChild(chatNode_1)) { chatNode = chatNode_1; } else if (dataSnapshot.hasChild(chatNode_2)) { chatNode = chatNode_2; } else { chatNode = chatNode_1; } items.clear(); items.addAll(pfbd.getMessagesForSingleUser(dataSnapshot.child(chatNode))); //Here we are traversing all the messages and mark all received messages read for (DataSnapshot data : dataSnapshot.child(chatNode).getChildren()) { if (data.child(Constants.NODE_RECEIVER_ID).getValue().toString().equals(set.readSetting(Constants.PREF_MY_ID))) { data.child(Constants.NODE_IS_READ).getRef().runTransaction(new Transaction.Handler() { @NonNull @Override public Transaction.Result doTransaction(@NonNull MutableData mutableData) { mutableData.setValue(true); return Transaction.success(mutableData); } @Override public void onComplete(@Nullable DatabaseError databaseError, boolean b, @Nullable DataSnapshot dataSnapshot) { } }); } } // TODO: 12/09/18 Change it to recyclerview mAdapter = new ChatDetailsListAdapter(ChatActivity.this, items); listview.setAdapter(mAdapter); listview.requestFocus(); registerForContextMenu(listview); } @Override public void onCancelled(DatabaseError databaseError) { new CustomToast(ChatActivity.this).showError(getString(R.string.error_could_not_connect)); } }; ref = FirebaseDatabase.getInstance().getReference(Constants.MESSAGE_CHILD); ref.addValueEventListener(valueEventListener); // for system bar in lollipop if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { Tools.systemBarLolipop(this); } }