Skip to content

Commit b2e199d

Browse files
committed
Merge branch 'main' into rw-maps-grounding
2 parents 7519fa9 + 55a7f6f commit b2e199d

File tree

5 files changed

+433
-7
lines changed

5 files changed

+433
-7
lines changed

packages/_flutterfire_internals/lib/_flutterfire_internals.dart

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -91,12 +91,14 @@ FirebaseException _firebaseExceptionFromCoreFirebaseError(
9191
///
9292
/// See also https://github.com/dart-lang/sdk/issues/30741
9393
bool _testException(Object? objectException) {
94-
final exception = objectException! as core_interop.JSError;
94+
if (objectException is! core_interop.JSError) {
95+
return false;
96+
}
9597

96-
final message = _safeConvertFromPossibleJSObject(exception.message);
98+
final message = _safeConvertFromPossibleJSObject(objectException.message);
9799
// Firestore web does not contain `Firebase` in the message so we check the exception itself.
98100
return message.contains('Firebase') ||
99-
exception.toString().contains('FirebaseError');
101+
objectException.toString().contains('FirebaseError');
100102
}
101103

102104
/// Transforms internal errors in something more readable for end-users.

packages/_flutterfire_internals/test/guard_test.dart

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,19 @@ void main() {
5252
expect(stack, current);
5353
}
5454
});
55+
56+
test(
57+
'propagates plain Dart errors from Futures (e.g. ArgumentError on web)',
58+
() async {
59+
await expectLater(
60+
guardWebExceptions(
61+
() => Future<void>.error(ArgumentError('test')),
62+
plugin: 'test',
63+
codeParser: (c) => c,
64+
),
65+
throwsA(isA<ArgumentError>()),
66+
);
67+
});
5568
});
5669
}
5770

packages/firebase_ai/firebase_ai/example/lib/main.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ import 'package:firebase_core/firebase_core.dart';
1818
import 'package:flutter/material.dart';
1919

2020
// Import after file is generated through flutterfire_cli.
21-
// import 'package:firebase_ai_example/firebase_options.dart';
21+
// import 'package:firebase_ai_example/firebase_options.dart';
2222

2323
import 'pages/bidi_page.dart';
2424
import 'pages/chat_page.dart';

0 commit comments

Comments
 (0)