Skip to content

Commit 4ba7724

Browse files
authored
fix(database): fix #81 - setPersistenceCacheSizeBytes call on Android
1 parent 3d620ec commit 4ba7724

File tree

4 files changed

+25
-3
lines changed

4 files changed

+25
-3
lines changed

packages/firebase_database/CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
## 3.1.5
2+
3+
* Fix (#81) Android setPersistenceCacheSizeBytes crash when Long value was provided.
4+
15
## 3.1.4
26

37
* Fix for missing UserAgent.h compilation failures.

packages/firebase_database/android/src/main/java/io/flutter/plugins/firebase/database/MethodCallHandlerImpl.java

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -272,9 +272,17 @@ public void onMethodCall(final MethodCall call, @NonNull final MethodChannel.Res
272272

273273
case "FirebaseDatabase#setPersistenceCacheSizeBytes":
274274
{
275-
Long cacheSize = call.argument("cacheSize");
275+
Object value = call.argument("cacheSize");
276+
Long cacheSizeBytes = 10485760L; // 10mb default
277+
278+
if (value instanceof Long) {
279+
cacheSizeBytes = (Long) value;
280+
} else if (value instanceof Integer) {
281+
cacheSizeBytes = Long.valueOf((Integer) value);
282+
}
283+
276284
try {
277-
database.setPersistenceCacheSizeBytes(cacheSize);
285+
database.setPersistenceCacheSizeBytes(cacheSizeBytes);
278286
result.success(true);
279287
} catch (DatabaseException e) {
280288
// Database is already in use, e.g. after hot reload/restart.

packages/firebase_database/example/test_driver/firebase_database_e2e.dart

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,5 +20,15 @@ void main() {
2020
expect(transactionResult.committed, true);
2121
expect(transactionResult.dataSnapshot.value > value, true);
2222
});
23+
24+
testWidgets('setPersistenceCacheSizeBytes Integer',
25+
(WidgetTester tester) async {
26+
await database.setPersistenceCacheSizeBytes(2147483647);
27+
});
28+
29+
testWidgets('setPersistenceCacheSizeBytes Long',
30+
(WidgetTester tester) async {
31+
await database.setPersistenceCacheSizeBytes(2147483648);
32+
});
2333
});
2434
}

packages/firebase_database/pubspec.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ name: firebase_database
22
description: Flutter plugin for Firebase Database, a cloud-hosted NoSQL database
33
with realtime data syncing across Android and iOS clients, and offline access.
44
homepage: https://github.com/FirebaseExtended/flutterfire/tree/master/packages/firebase_database
5-
version: 3.1.4
5+
version: 3.1.5
66

77
flutter:
88
plugin:

0 commit comments

Comments
 (0)