Skip to content

Commit d9a97f2

Browse files
committed
Removed event listener. WIP
1 parent 5cee9c7 commit d9a97f2

File tree

2 files changed

+7
-4
lines changed
  • firebase-database/src

2 files changed

+7
-4
lines changed

firebase-database/src/androidTest/java/com/google/firebase/database/QueryTest.java

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4646,7 +4646,7 @@ public void testGetResolvesToCacheWhenOnlineAndParentListener()
46464646

46474647
@Test
46484648
public void testGetResolvesToCacheWhenOnlineAndSameLevelListener()
4649-
throws DatabaseException, InterruptedException {
4649+
throws DatabaseException, InterruptedException, ExecutionException {
46504650
FirebaseApp writeApp =
46514651
appForDatabaseUrl(IntegrationTestValues.getDatabaseUrl(), UUID.randomUUID().toString());
46524652
// To ensure that we don't read the cached results, we need a separate app.
@@ -4658,12 +4658,14 @@ public void testGetResolvesToCacheWhenOnlineAndSameLevelListener()
46584658
long val = 34;
46594659
String writeKey = Objects.requireNonNull(writeDb.getReference().push().getKey());
46604660
DatabaseReference writeNode = writeDb.getReference().child(writeKey);
4661-
writeNode.setValue(val);
4661+
await(writeNode.setValue(val));
46624662
DatabaseReference readNode = readDb.getReference().child(writeKey);
4663+
final int testArr[] = {0};
46634664
ValueEventListener listener =
46644665
new ValueEventListener() {
46654666
@Override
46664667
public void onDataChange(@NonNull DataSnapshot snapshot) {
4668+
assertEquals(0, testArr[0]++);
46674669
assertEquals(34L, snapshot.getValue());
46684670
semaphore.release();
46694671
}
@@ -4679,6 +4681,7 @@ public void onCancelled(@NonNull DatabaseError error) {
46794681
IntegrationTestHelpers.waitFor(semaphore);
46804682
DataSnapshot snapshot = await(readNode.get());
46814683
assertEquals(val, snapshot.getValue());
4684+
readNode.removeEventListener(listener);
46824685
// need to rewrite it
46834686
} catch (ExecutionException e) {
46844687
fail("get threw an exception: " + e);
@@ -4740,7 +4743,6 @@ public void testGetResolvesToCacheWhenOnlineAndChildLevelListener()
47404743
DatabaseReference childReadNode =
47414744
readDb.getReference().child(parentNodeKey).child(childReadKey);
47424745
DatabaseReference childWriteNode = parentWriteNode.child(childReadKey);
4743-
47444746
ValueEventListener listener =
47454747
new ValueEventListener() {
47464748
@Override
@@ -4765,6 +4767,7 @@ public void onCancelled(@NonNull DatabaseError error) {
47654767
parentWriteNode.setValue(new MapBuilder().put(childReadKey, val).build());
47664768
DataSnapshot parentSnapshot = await(childReadNode.get());
47674769
assertEquals(parentSnapshot.getValue(), val);
4770+
childReadNode.removeEventListener(listener);
47684771
} catch (ExecutionException e) {
47694772
fail("get threw an exception: " + e);
47704773
}

firebase-database/src/main/java/com/google/firebase/database/core/Repo.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -579,11 +579,11 @@ public void onCancelled(@NonNull DatabaseError error) {
579579
serverSyncTree.applyTaggedQueryOverwrite(
580580
spec.getPath(), serverNode, getServerSyncTree().tagForQuery(spec));
581581
}
582-
serverSyncTree.removeEventRegistration(eventRegistration, true);
583582
source.setResult(
584583
InternalHelpers.createDataSnapshot(
585584
query.getRef(),
586585
IndexedNode.from(serverNode, query.getSpec().getIndex())));
586+
serverSyncTree.removeEventRegistration(eventRegistration, true);
587587
}
588588
});
589589
}

0 commit comments

Comments
 (0)