Skip to content

Commit 60e6dd7

Browse files
committed
chore: follow design pattern for pigeon api usage
1 parent 7004374 commit 60e6dd7

File tree

4 files changed

+52
-48
lines changed

4 files changed

+52
-48
lines changed

packages/firebase_database/firebase_database_platform_interface/lib/src/method_channel/method_channel_database.dart

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import 'package:firebase_database_platform_interface/firebase_database_platform_
77
import 'package:firebase_database_platform_interface/src/method_channel/utils/utils.dart';
88
import 'package:flutter/services.dart';
99
import 'package:firebase_database_platform_interface/src/pigeon/messages.pigeon.dart'
10-
as pigeon;
10+
hide DatabaseReferencePlatform;
1111

1212
import 'method_channel_database_reference.dart';
1313
import 'utils/exception.dart';
@@ -18,9 +18,9 @@ class MethodChannelArguments {
1818
FirebaseApp app;
1919
}
2020

21-
class _TransactionHandlerFlutterApi extends pigeon.FirebaseDatabaseFlutterApi {
21+
class _TransactionHandlerFlutterApi extends FirebaseDatabaseFlutterApi {
2222
@override
23-
Future<pigeon.TransactionHandlerResult> callTransactionHandler(
23+
Future<TransactionHandlerResult> callTransactionHandler(
2424
int transactionKey,
2525
Object? snapshotValue,
2626
) async {
@@ -48,7 +48,7 @@ class _TransactionHandlerFlutterApi extends pigeon.FirebaseDatabaseFlutterApi {
4848
MethodChannelDatabase.transactionErrors[transactionKey] = e;
4949
}
5050

51-
return pigeon.TransactionHandlerResult(
51+
return TransactionHandlerResult(
5252
value: value != null ? transformValue(value) : null,
5353
aborted: aborted,
5454
exception: exception,
@@ -60,14 +60,14 @@ class _TransactionHandlerFlutterApi extends pigeon.FirebaseDatabaseFlutterApi {
6060
///
6161
/// You can get an instance by calling [FirebaseDatabase.instance].
6262
class MethodChannelDatabase extends DatabasePlatform {
63-
static final pigeonChannel = pigeon.FirebaseDatabaseHostApi();
63+
static final _api = FirebaseDatabaseHostApi();
6464

6565
/// Creates a DatabasePigeonFirebaseApp object with current settings
66-
pigeon.DatabasePigeonFirebaseApp get pigeonApp {
67-
return pigeon.DatabasePigeonFirebaseApp(
66+
DatabasePigeonFirebaseApp get pigeonApp {
67+
return DatabasePigeonFirebaseApp(
6868
appName: app!.name,
6969
databaseURL: databaseURL,
70-
settings: pigeon.DatabasePigeonSettings(
70+
settings: DatabasePigeonSettings(
7171
persistenceEnabled: _persistenceEnabled,
7272
cacheSizeBytes: _cacheSizeBytes,
7373
loggingEnabled: _loggingEnabled,
@@ -82,7 +82,7 @@ class MethodChannelDatabase extends DatabasePlatform {
8282
if (_initialized) return;
8383

8484
// Set up the Pigeon FlutterApi for transaction handler callbacks
85-
pigeon.FirebaseDatabaseFlutterApi.setUp(_TransactionHandlerFlutterApi());
85+
FirebaseDatabaseFlutterApi.setUp(_TransactionHandlerFlutterApi());
8686
_initialized = true;
8787
}
8888

@@ -131,7 +131,7 @@ class MethodChannelDatabase extends DatabasePlatform {
131131
_emulatorHost = host;
132132
_emulatorPort = port;
133133
// Call the Pigeon method to set up the emulator
134-
pigeonChannel.useDatabaseEmulator(pigeonApp, host, port);
134+
_api.useDatabaseEmulator(pigeonApp, host, port);
135135
}
136136

137137
@override
@@ -146,27 +146,27 @@ class MethodChannelDatabase extends DatabasePlatform {
146146
void setPersistenceEnabled(bool enabled) {
147147
_persistenceEnabled = enabled;
148148
// Call the Pigeon method to set persistence
149-
pigeonChannel.setPersistenceEnabled(pigeonApp, enabled);
149+
_api.setPersistenceEnabled(pigeonApp, enabled);
150150
}
151151

152152
@override
153153
void setPersistenceCacheSizeBytes(int cacheSize) {
154154
_cacheSizeBytes = cacheSize;
155155
// Call the Pigeon method to set cache size
156-
pigeonChannel.setPersistenceCacheSizeBytes(pigeonApp, cacheSize);
156+
_api.setPersistenceCacheSizeBytes(pigeonApp, cacheSize);
157157
}
158158

159159
@override
160160
void setLoggingEnabled(bool enabled) {
161161
_loggingEnabled = enabled;
162162
// Call the Pigeon method to set logging
163-
pigeonChannel.setLoggingEnabled(pigeonApp, enabled);
163+
_api.setLoggingEnabled(pigeonApp, enabled);
164164
}
165165

166166
@override
167167
Future<void> goOnline() {
168168
try {
169-
return pigeonChannel.goOnline(pigeonApp);
169+
return _api.goOnline(pigeonApp);
170170
} catch (e, s) {
171171
convertPlatformException(e, s);
172172
}
@@ -177,7 +177,7 @@ class MethodChannelDatabase extends DatabasePlatform {
177177
@override
178178
Future<void> goOffline() {
179179
try {
180-
return pigeonChannel.goOffline(pigeonApp);
180+
return _api.goOffline(pigeonApp);
181181
} catch (e, s) {
182182
convertPlatformException(e, s);
183183
}
@@ -196,7 +196,7 @@ class MethodChannelDatabase extends DatabasePlatform {
196196
@override
197197
Future<void> purgeOutstandingWrites() {
198198
try {
199-
return pigeonChannel.purgeOutstandingWrites(pigeonApp);
199+
return _api.purgeOutstandingWrites(pigeonApp);
200200
} catch (e, s) {
201201
convertPlatformException(e, s);
202202
}

packages/firebase_database/firebase_database_platform_interface/lib/src/method_channel/method_channel_database_reference.dart

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
import 'package:firebase_database_platform_interface/firebase_database_platform_interface.dart';
66
import 'package:firebase_database_platform_interface/src/method_channel/utils/utils.dart';
77
import 'package:firebase_database_platform_interface/src/pigeon/messages.pigeon.dart'
8-
as pigeon;
8+
hide DatabaseReferencePlatform;
99

1010
import 'method_channel_database.dart';
1111
import 'method_channel_on_disconnect.dart';
@@ -14,6 +14,8 @@ import 'method_channel_transaction_result.dart';
1414
import 'utils/exception.dart';
1515
import 'utils/push_id_generator.dart';
1616

17+
final _api = FirebaseDatabaseHostApi();
18+
1719
/// DatabaseReference represents a particular location in your Firebase
1820
/// Database and can be used for reading or writing data to that location.
1921
///
@@ -34,7 +36,7 @@ class MethodChannelDatabaseReference extends MethodChannelQuery
3436
);
3537

3638
/// Gets the Pigeon app object from the database
37-
pigeon.DatabasePigeonFirebaseApp get _pigeonApp {
39+
DatabasePigeonFirebaseApp get _pigeonApp {
3840
final methodChannelDatabase = database as MethodChannelDatabase;
3941
return methodChannelDatabase.pigeonApp;
4042
}
@@ -83,9 +85,9 @@ class MethodChannelDatabaseReference extends MethodChannelQuery
8385
@override
8486
Future<void> set(Object? value) async {
8587
try {
86-
await MethodChannelDatabase.pigeonChannel.databaseReferenceSet(
88+
await _api.databaseReferenceSet(
8789
_pigeonApp,
88-
pigeon.DatabaseReferenceRequest(
90+
DatabaseReferenceRequest(
8991
path: path,
9092
value: value != null ? transformValue(value) : null,
9193
),
@@ -98,10 +100,9 @@ class MethodChannelDatabaseReference extends MethodChannelQuery
98100
@override
99101
Future<void> setWithPriority(Object? value, Object? priority) async {
100102
try {
101-
await MethodChannelDatabase.pigeonChannel
102-
.databaseReferenceSetWithPriority(
103+
await _api.databaseReferenceSetWithPriority(
103104
_pigeonApp,
104-
pigeon.DatabaseReferenceRequest(
105+
DatabaseReferenceRequest(
105106
path: path,
106107
value: value != null ? transformValue(value) : null,
107108
priority: priority,
@@ -115,9 +116,9 @@ class MethodChannelDatabaseReference extends MethodChannelQuery
115116
@override
116117
Future<void> update(Map<String, Object?> value) async {
117118
try {
118-
await MethodChannelDatabase.pigeonChannel.databaseReferenceUpdate(
119+
await _api.databaseReferenceUpdate(
119120
_pigeonApp,
120-
pigeon.UpdateRequest(
121+
UpdateRequest(
121122
path: path,
122123
value: transformValue(value)! as Map<String, Object?>,
123124
),
@@ -130,9 +131,9 @@ class MethodChannelDatabaseReference extends MethodChannelQuery
130131
@override
131132
Future<void> setPriority(Object? priority) async {
132133
try {
133-
await MethodChannelDatabase.pigeonChannel.databaseReferenceSetPriority(
134+
await _api.databaseReferenceSetPriority(
134135
_pigeonApp,
135-
pigeon.DatabaseReferenceRequest(
136+
DatabaseReferenceRequest(
136137
path: path,
137138
priority: priority,
138139
),
@@ -158,18 +159,17 @@ class MethodChannelDatabaseReference extends MethodChannelQuery
158159
MethodChannelDatabase.transactions[key] = transactionHandler;
159160

160161
try {
161-
await MethodChannelDatabase.pigeonChannel.databaseReferenceRunTransaction(
162+
await _api.databaseReferenceRunTransaction(
162163
_pigeonApp,
163-
pigeon.TransactionRequest(
164+
TransactionRequest(
164165
path: path,
165166
transactionKey: key,
166167
applyLocally: applyLocally,
167168
),
168169
);
169170

170171
// Get the transaction result using Pigeon
171-
final result = await MethodChannelDatabase.pigeonChannel
172-
.databaseReferenceGetTransactionResult(
172+
final result = await _api.databaseReferenceGetTransactionResult(
173173
_pigeonApp,
174174
key,
175175
);

packages/firebase_database/firebase_database_platform_interface/lib/src/method_channel/method_channel_on_disconnect.dart

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,13 @@
55
import 'package:firebase_database_platform_interface/firebase_database_platform_interface.dart';
66
import 'package:firebase_database_platform_interface/src/method_channel/utils/utils.dart';
77
import 'package:firebase_database_platform_interface/src/pigeon/messages.pigeon.dart'
8-
as pigeon;
8+
hide DatabaseReferencePlatform;
99

1010
import 'method_channel_database.dart';
1111
import 'utils/exception.dart';
1212

13+
final _api = FirebaseDatabaseHostApi();
14+
1315
/// Represents a query over the data at a particular location.
1416
class MethodChannelOnDisconnect extends OnDisconnectPlatform {
1517
/// Create a [MethodChannelQuery] from [DatabaseReferencePlatform]
@@ -19,17 +21,17 @@ class MethodChannelOnDisconnect extends OnDisconnectPlatform {
1921
}) : super(database: database, ref: ref);
2022

2123
/// Gets the Pigeon app object from the database
22-
pigeon.DatabasePigeonFirebaseApp get _pigeonApp {
24+
DatabasePigeonFirebaseApp get _pigeonApp {
2325
final methodChannelDatabase = database as MethodChannelDatabase;
2426
return methodChannelDatabase.pigeonApp;
2527
}
2628

2729
@override
2830
Future<void> set(Object? value) async {
2931
try {
30-
await MethodChannelDatabase.pigeonChannel.onDisconnectSet(
32+
await _api.onDisconnectSet(
3133
_pigeonApp,
32-
pigeon.DatabaseReferenceRequest(
34+
DatabaseReferenceRequest(
3335
path: ref.path,
3436
value: value != null ? transformValue(value) : null,
3537
),
@@ -42,9 +44,9 @@ class MethodChannelOnDisconnect extends OnDisconnectPlatform {
4244
@override
4345
Future<void> setWithPriority(Object? value, Object? priority) async {
4446
try {
45-
await MethodChannelDatabase.pigeonChannel.onDisconnectSetWithPriority(
47+
await _api.onDisconnectSetWithPriority(
4648
_pigeonApp,
47-
pigeon.DatabaseReferenceRequest(
49+
DatabaseReferenceRequest(
4850
path: ref.path,
4951
value: value != null ? transformValue(value) : null,
5052
priority: priority,
@@ -61,7 +63,7 @@ class MethodChannelOnDisconnect extends OnDisconnectPlatform {
6163
@override
6264
Future<void> cancel() async {
6365
try {
64-
await MethodChannelDatabase.pigeonChannel.onDisconnectCancel(
66+
await _api.onDisconnectCancel(
6567
_pigeonApp,
6668
ref.path,
6769
);
@@ -73,9 +75,9 @@ class MethodChannelOnDisconnect extends OnDisconnectPlatform {
7375
@override
7476
Future<void> update(Map<String, Object?> value) async {
7577
try {
76-
await MethodChannelDatabase.pigeonChannel.onDisconnectUpdate(
78+
await _api.onDisconnectUpdate(
7779
_pigeonApp,
78-
pigeon.UpdateRequest(
80+
UpdateRequest(
7981
path: ref.path,
8082
value: transformValue(value)! as Map<String, Object?>,
8183
),

packages/firebase_database/firebase_database_platform_interface/lib/src/method_channel/method_channel_query.dart

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
import 'package:_flutterfire_internals/_flutterfire_internals.dart';
66
import 'package:firebase_database_platform_interface/firebase_database_platform_interface.dart';
77
import 'package:firebase_database_platform_interface/src/pigeon/messages.pigeon.dart'
8-
as pigeon;
8+
hide DatabaseReferencePlatform;
99
import 'package:flutter/services.dart';
1010

1111
import 'method_channel_data_snapshot.dart';
@@ -14,6 +14,8 @@ import 'method_channel_database_event.dart';
1414
import 'method_channel_database_reference.dart';
1515
import 'utils/exception.dart';
1616

17+
final _api = FirebaseDatabaseHostApi();
18+
1719
/// Represents a query over the data at a particular location.
1820
class MethodChannelQuery extends QueryPlatform {
1921
/// Create a [MethodChannelQuery] from [pathComponents]
@@ -27,7 +29,7 @@ class MethodChannelQuery extends QueryPlatform {
2729
final List<String> pathComponents;
2830

2931
/// Gets the Pigeon app object from the database
30-
pigeon.DatabasePigeonFirebaseApp get _pigeonApp {
32+
DatabasePigeonFirebaseApp get _pigeonApp {
3133
final methodChannelDatabase = database as MethodChannelDatabase;
3234
return methodChannelDatabase.pigeonApp;
3335
}
@@ -48,9 +50,9 @@ class MethodChannelQuery extends QueryPlatform {
4850
List<Map<String, Object?>> modifierList = modifiers.toList();
4951

5052
// Create the EventChannel on native using Pigeon.
51-
final channelName = await MethodChannelDatabase.pigeonChannel.queryObserve(
53+
final channelName = await _api.queryObserve(
5254
_pigeonApp,
53-
pigeon.QueryRequest(
55+
QueryRequest(
5456
path: path,
5557
modifiers: modifierList,
5658
),
@@ -69,9 +71,9 @@ class MethodChannelQuery extends QueryPlatform {
6971
@override
7072
Future<DataSnapshotPlatform> get(QueryModifiers modifiers) async {
7173
try {
72-
final result = await MethodChannelDatabase.pigeonChannel.queryGet(
74+
final result = await _api.queryGet(
7375
_pigeonApp,
74-
pigeon.QueryRequest(
76+
QueryRequest(
7577
path: path,
7678
modifiers: modifiers.toList(),
7779
),
@@ -113,9 +115,9 @@ class MethodChannelQuery extends QueryPlatform {
113115
@override
114116
Future<void> keepSynced(QueryModifiers modifiers, bool value) async {
115117
try {
116-
await MethodChannelDatabase.pigeonChannel.queryKeepSynced(
118+
await _api.queryKeepSynced(
117119
_pigeonApp,
118-
pigeon.QueryRequest(
120+
QueryRequest(
119121
path: path,
120122
modifiers: modifiers.toList(),
121123
value: value,

0 commit comments

Comments
 (0)