Skip to content

Commit 4e43c28

Browse files
Merge branch 'main' into fix/auto-dropdown
2 parents 8595d1c + 43f2a59 commit 4e43c28

File tree

34 files changed

+638
-227
lines changed

34 files changed

+638
-227
lines changed

CHANGELOG.md

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,50 @@
33
All notable changes to this project will be documented in this file.
44
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
55

6+
## 2025-02-07
7+
8+
### Changes
9+
10+
---
11+
12+
Packages with breaking changes:
13+
14+
- There are no breaking changes in this release.
15+
16+
Packages with other changes:
17+
18+
- [`ensemble` - `v1.1.21`](#ensemble---v1121)
19+
- [`ensemble_chat` - `v0.0.1+1`](#ensemble_chat---v0011)
20+
- [`ensemble_location` - `v0.0.1+1`](#ensemble_location---v0011)
21+
- [`ensemble_contacts` - `v0.0.1+1`](#ensemble_contacts---v0011)
22+
- [`ensemble_auth` - `v1.0.1`](#ensemble_auth---v101)
23+
- [`ensemble_camera` - `v0.0.1+1`](#ensemble_camera---v0011)
24+
- [`ensemble_file_manager` - `v0.0.1+1`](#ensemble_file_manager---v0011)
25+
- [`ensemble_bluetooth` - `v0.0.1+1`](#ensemble_bluetooth---v0011)
26+
- [`ensemble_connect` - `v0.0.1+1`](#ensemble_connect---v0011)
27+
- [`ensemble_deeplink` - `v0.0.1+1`](#ensemble_deeplink---v0011)
28+
- [`ensemble_network_info` - `v0.0.1+1`](#ensemble_network_info---v0011)
29+
30+
Packages with dependency updates only:
31+
32+
> Packages listed below depend on other packages in this workspace that have had changes. Their versions have been incremented to bump the minimum dependency versions of the packages they depend upon in this project.
33+
34+
- `ensemble_chat` - `v0.0.1+1`
35+
- `ensemble_location` - `v0.0.1+1`
36+
- `ensemble_contacts` - `v0.0.1+1`
37+
- `ensemble_auth` - `v1.0.1`
38+
- `ensemble_camera` - `v0.0.1+1`
39+
- `ensemble_file_manager` - `v0.0.1+1`
40+
- `ensemble_bluetooth` - `v0.0.1+1`
41+
- `ensemble_connect` - `v0.0.1+1`
42+
- `ensemble_deeplink` - `v0.0.1+1`
43+
- `ensemble_network_info` - `v0.0.1+1`
44+
45+
---
46+
47+
#### `ensemble` - `v1.1.21`
48+
49+
650
## 2025-02-07
751

852
### Changes

modules/auth/lib/signin/auth_manager.dart

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import 'dart:developer';
22
import 'dart:io';
3+
import 'package:collection/collection.dart';
34

45
import 'package:ensemble/action/invoke_api_action.dart';
56
import 'package:ensemble/ensemble.dart';
@@ -22,6 +23,7 @@ import 'package:firebase_auth/firebase_auth.dart';
2223
import 'package:flutter/cupertino.dart';
2324
import 'package:firebase_core/firebase_core.dart';
2425
import 'package:flutter/foundation.dart';
26+
import 'package:flutter/services.dart';
2527
import 'package:google_sign_in/google_sign_in.dart';
2628
import 'package:sign_in_with_apple/sign_in_with_apple.dart';
2729

@@ -183,19 +185,28 @@ class AuthManager with UserAuthentication {
183185
}
184186

185187
Future<FirebaseApp> _initializeFirebaseSignIn() async {
188+
String? appId = await SignInUtils.getAppIdFromYaml();
189+
186190
FirebaseOptions? options;
191+
187192
if (kIsWeb) {
188193
options = Ensemble().getAccount()?.firebaseConfig?.webConfig;
189194
} else if (Platform.isIOS) {
190195
options = Ensemble().getAccount()?.firebaseConfig?.iOSConfig;
191196
} else if (Platform.isAndroid) {
192197
options = Ensemble().getAccount()?.firebaseConfig?.androidConfig;
193198
}
194-
if (options == null) {
199+
if (options == null || appId == null) {
195200
throw ConfigError('Firebase is not configured for this platform.');
196201
}
197-
return await Firebase.initializeApp(
198-
name: 'customFirebase', options: options);
202+
203+
// if the Firebase app is already initialized by other modules with same options, return it
204+
FirebaseApp? existingApp = Firebase.apps.firstWhereOrNull(
205+
(app) => SignInUtils.areFirebaseOptionsEqual(app.options, options!),
206+
);
207+
208+
return existingApp ??
209+
await Firebase.initializeApp(name: appId, options: options);
199210
}
200211

201212
/// enrich the passed in User with information from Firebase

modules/auth/lib/signin/signin_utils.dart

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
import 'package:ensemble/framework/stub/auth_context_manager.dart';
2+
import 'package:firebase_core/firebase_core.dart';
3+
import 'package:flutter/services.dart';
24
import 'package:google_sign_in/google_sign_in.dart';
5+
import 'package:yaml/yaml.dart';
36

47
class SignInUtils {
58
/// convert a Google user account to our User
@@ -12,4 +15,17 @@ class SignInUtils {
1215
name: account.displayName,
1316
email: account.email,
1417
photo: account.photoUrl);
18+
19+
static Future<String?> getAppIdFromYaml() async {
20+
final yamlString = await rootBundle.loadString('ensemble/ensemble-config.yaml');
21+
final YamlMap yamlMap = loadYaml(yamlString);
22+
return yamlMap['definitions']?['ensemble']?['appId'];
23+
}
24+
25+
static bool areFirebaseOptionsEqual(FirebaseOptions a, FirebaseOptions b) {
26+
return a.apiKey == b.apiKey &&
27+
a.appId == b.appId &&
28+
a.messagingSenderId == b.messagingSenderId &&
29+
a.projectId == b.projectId;
30+
}
1531
}

modules/auth/pubspec.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ dependencies:
2828
ensemble:
2929
git:
3030
url: https://github.com/EnsembleUI/ensemble.git
31-
ref: ensemble-v1.1.20
31+
ref: ensemble-v1.1.21
3232
path: modules/ensemble
3333

3434
ensemble_ts_interpreter:

modules/bracket/pubspec.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ dependencies:
1414
ensemble:
1515
git:
1616
url: https://github.com/EnsembleUI/ensemble.git
17-
ref: ensemble-v1.1.20
17+
ref: ensemble-v1.1.21
1818
path: modules/ensemble
1919

2020
dev_dependencies:

modules/camera/pubspec.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ dependencies:
1515
ensemble:
1616
git:
1717
url: https://github.com/EnsembleUI/ensemble.git
18-
ref: ensemble-v1.1.20
18+
ref: ensemble-v1.1.21
1919
path: modules/ensemble
2020
ensemble_ts_interpreter:
2121
git:

modules/chat/pubspec.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ dependencies:
1313
ensemble:
1414
git:
1515
url: https://github.com/EnsembleUI/ensemble.git
16-
ref: ensemble-v1.1.20
16+
ref: ensemble-v1.1.21
1717
path: modules/ensemble
1818

1919
ensemble_ts_interpreter:

modules/connect/pubspec.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ dependencies:
1313
ensemble:
1414
git:
1515
url: https://github.com/EnsembleUI/ensemble.git
16-
ref: ensemble-v1.1.20
16+
ref: ensemble-v1.1.21
1717
path: modules/ensemble
1818

1919
plaid_flutter: ^3.1.2

modules/contacts/pubspec.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ dependencies:
1313
ensemble:
1414
git:
1515
url: https://github.com/EnsembleUI/ensemble.git
16-
ref: ensemble-v1.1.20
16+
ref: ensemble-v1.1.21
1717
path: modules/ensemble
1818

1919
flutter_contacts: ^1.1.7+1

modules/deeplink/pubspec.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ dependencies:
1313
ensemble:
1414
git:
1515
url: https://github.com/EnsembleUI/ensemble.git
16-
ref: ensemble-v1.1.20
16+
ref: ensemble-v1.1.21
1717
path: modules/ensemble
1818

1919
flutter_branch_sdk: ^7.0.1

0 commit comments

Comments
 (0)