Skip to content

Commit 0f0fa80

Browse files
Rexios80lesnitsky
andauthored
fix(firebase_ui_oauth): Fix provider auth listener late init exception (firebase#107)
* Store the provider in the state so that it doesn't get reset * Set isLoading to false in onError callback * drop tests folder --------- Co-authored-by: Andrei Lesnitsky <[email protected]>
1 parent a1c1c33 commit 0f0fa80

File tree

2 files changed

+9
-17
lines changed

2 files changed

+9
-17
lines changed

packages/firebase_ui_oauth/example/test/widget_test.dart

-12
This file was deleted.

packages/firebase_ui_oauth/lib/src/oauth_provider_button_base.dart

+9-5
Original file line numberDiff line numberDiff line change
@@ -142,15 +142,18 @@ class OAuthProviderButtonBase extends StatefulWidget {
142142

143143
class _OAuthProviderButtonBaseState extends State<OAuthProviderButtonBase>
144144
implements OAuthListener {
145+
@override
146+
late final OAuthProvider provider = widget.provider;
147+
145148
double get _height => widget.size + widget._padding * 2;
146149
late bool isLoading = widget.isLoading;
147150

148151
@override
149152
void initState() {
150153
super.initState();
151154

152-
widget.provider.auth = widget.auth ?? FirebaseAuth.instance;
153-
widget.provider.authListener = this;
155+
provider.auth = widget.auth ?? FirebaseAuth.instance;
156+
provider.authListener = this;
154157
}
155158

156159
void _signIn() {
@@ -336,6 +339,10 @@ class _OAuthProviderButtonBaseState extends State<OAuthProviderButtonBase>
336339

337340
@override
338341
void onError(Object error) {
342+
setState(() {
343+
isLoading = false;
344+
});
345+
339346
try {
340347
defaultOnAuthError(provider, error);
341348
} on Exception catch (err) {
@@ -360,9 +367,6 @@ class _OAuthProviderButtonBaseState extends State<OAuthProviderButtonBase>
360367

361368
super.didUpdateWidget(oldWidget);
362369
}
363-
364-
@override
365-
OAuthProvider get provider => widget.provider;
366370
}
367371

368372
class _ButtonContent extends StatelessWidget {

0 commit comments

Comments
 (0)