Skip to content

Commit ed44847

Browse files
committed
feat: add Firebase simulator client and server examples, refactor port handling
1 parent e752acb commit ed44847

File tree

7 files changed

+54
-20
lines changed

7 files changed

+54
-20
lines changed

firebase_sim/example/example_io_client.dart

Lines changed: 0 additions & 16 deletions
This file was deleted.
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
import 'package:tekartik_firebase_sim/firebase_sim.dart';
2+
import 'package:tekartik_firebase_sim/src/firebase_sim.dart';
3+
import 'package:tekartik_firebase_test/menu/firebase_client_menu.dart';
4+
5+
import 'vars_menu.dart';
6+
7+
Future<void> main(List<String> args) async {
8+
var firebase = getFirebaseSim(
9+
uri: getFirebaseSimLocalhostUri(port: simPortKvValue),
10+
);
11+
12+
await mainMenu(args, () {
13+
firebaseMainMenu(context: FirebaseMainMenuContext(firebase: firebase));
14+
varsMenu();
15+
});
16+
}

firebase_sim/example/example_io_server.dart renamed to firebase_sim/example/example_sim_server.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,13 @@
33
import 'package:tekartik_firebase_local/firebase_local.dart';
44
import 'package:tekartik_firebase_sim/firebase_sim_server.dart';
55

6-
import 'example_io_client.dart';
6+
import 'vars_menu.dart';
77

88
Future<void> main(List<String> args) async {
99
var firebaseSimServer = await firebaseSimServe(
1010
FirebaseLocal(),
1111
webSocketChannelServerFactory: webSocketChannelServerFactoryIo,
12-
port: urlKvPort,
12+
port: simPortKvValue,
1313
);
1414
print('url ${firebaseSimServer.url}');
1515
}
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
import 'package:tekartik_app_dev_menu/dev_menu.dart';
2+
3+
int? get simPortKvValue {
4+
return int.tryParse(simPortKv.value ?? '');
5+
}
6+
7+
var simPortKv = 'firebase_sim_example.sim.port'.kvFromVar();
8+
9+
void varsMenu() {
10+
keyValuesMenu('vars', [simPortKv]);
11+
}
12+
13+
Future<void> main(List<String> args) async {
14+
await mainMenu(args, () {
15+
varsMenu();
16+
});
17+
}

firebase_sim/lib/firebase_sim.dart

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@ export 'src/firebase_sim.dart'
33
FirebaseSim,
44
getFirebaseSim,
55
getFirebaseSimUrl,
6+
getFirebaseSimPort,
7+
getFirebaseSimLocalhostUri,
68
firebaseSimDefaultPort,
79
firebaseSimDefaultProjectId;
810
export 'src/firebase_sim_client.dart' show FirebaseAppSim;

firebase_sim/lib/src/firebase_sim.dart

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,19 +11,32 @@ String get _defaultProjectId => 'sim';
1111

1212
/// Default project ID for the tekartik firebase Sim.
1313
String firebaseSimDefaultProjectId = _defaultProjectId;
14+
const firebaseSimLocalhostBaseUrl = 'ws://localhost';
1415

1516
/// The default port for the Firebase Simulator.
1617
final int firebaseSimDefaultPort = 4996;
1718

1819
/// Get the default Firebase Simulator URL.
20+
// @deprecated
1921
String getFirebaseSimUrl({int? port}) {
22+
return getFirebaseSimLocalhostUri(port: port).toString();
23+
}
24+
25+
/// Get the default Firebase Simulator port.
26+
int getFirebaseSimPort([int? port]) {
2027
port ??= firebaseSimDefaultPort;
21-
return 'ws://localhost:$port';
28+
return port;
29+
}
30+
31+
/// Get the default Firebase Simulator URL.
32+
Uri getFirebaseSimLocalhostUri({int? port}) {
33+
var foundPort = getFirebaseSimPort(port);
34+
return Uri.parse('$firebaseSimLocalhostBaseUrl:$foundPort');
2235
}
2336

2437
/// Get firebase sim
2538
FirebaseSim getFirebaseSim({
26-
Firebase? firebaseServer,
39+
@Deprecated('Do no use') Firebase? firebaseServer,
2740
WebSocketChannelClientFactory? clientFactory,
2841
Uri? uri,
2942
String? localPath,

firebase_sim/lib/src/firebase_sim_server.dart

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import 'package:tekartik_firebase/firebase.dart';
66
import 'package:tekartik_firebase_sim/src/firebase_sim_message.dart';
77
import 'package:tekartik_rpc/rpc_server.dart';
88

9+
import '../firebase_sim.dart';
910
import 'log_utils.dart';
1011

1112
var debugFirebaseSimServer = false; // devWarning(true);
@@ -19,6 +20,7 @@ Future<FirebaseSimServer> firebaseSimServe(
1920
List<FirebaseSimPlugin>? plugins,
2021
int? port,
2122
}) async {
23+
port ??= firebaseSimDefaultPort;
2224
var services = [
2325
FirebaseSimServerCoreService(),
2426
if (plugins != null) ...plugins.map((plugin) => plugin.simService),

0 commit comments

Comments
 (0)