From 27087dc1ffad8457d3ae4d682faac6007fbfbf1b Mon Sep 17 00:00:00 2001 From: Stefan Schaller Date: Mon, 23 Feb 2026 15:47:46 +0100 Subject: [PATCH 1/3] update local user --- packages/gotrue/lib/src/gotrue_client.dart | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/packages/gotrue/lib/src/gotrue_client.dart b/packages/gotrue/lib/src/gotrue_client.dart index ea626fe04..25528a82f 100644 --- a/packages/gotrue/lib/src/gotrue_client.dart +++ b/packages/gotrue/lib/src/gotrue_client.dart @@ -717,7 +717,15 @@ class GoTrueClient { RequestMethodType.get, options: options, ); - return UserResponse.fromJson(response); + final userResponse = UserResponse.fromJson(response); + + if (userResponse.user == _currentSession?.user) return userResponse; + + _currentSession = currentSession?.copyWith(user: userResponse.user); + + notifyAllSubscribers(AuthChangeEvent.userUpdated); + + return userResponse; } /// Updates user data, if there is a logged in user. From da48e0784ef36fe2aecb1abb83978823a5d4d892 Mon Sep 17 00:00:00 2001 From: Stefan Schaller Date: Mon, 23 Feb 2026 15:49:19 +0100 Subject: [PATCH 2/3] update local user --- packages/gotrue/lib/src/gotrue_client.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/gotrue/lib/src/gotrue_client.dart b/packages/gotrue/lib/src/gotrue_client.dart index 25528a82f..dffd13e21 100644 --- a/packages/gotrue/lib/src/gotrue_client.dart +++ b/packages/gotrue/lib/src/gotrue_client.dart @@ -719,10 +719,10 @@ class GoTrueClient { ); final userResponse = UserResponse.fromJson(response); + // np need to update the local user when the user is the same if (userResponse.user == _currentSession?.user) return userResponse; _currentSession = currentSession?.copyWith(user: userResponse.user); - notifyAllSubscribers(AuthChangeEvent.userUpdated); return userResponse; From a63b7a88ef71cffb3991f51b55b00c9736f44829 Mon Sep 17 00:00:00 2001 From: Stefan Schaller Date: Mon, 23 Feb 2026 16:12:57 +0100 Subject: [PATCH 3/3] do nothing when the user is null --- packages/gotrue/lib/src/gotrue_client.dart | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packages/gotrue/lib/src/gotrue_client.dart b/packages/gotrue/lib/src/gotrue_client.dart index dffd13e21..929f27483 100644 --- a/packages/gotrue/lib/src/gotrue_client.dart +++ b/packages/gotrue/lib/src/gotrue_client.dart @@ -719,6 +719,8 @@ class GoTrueClient { ); final userResponse = UserResponse.fromJson(response); + if (userResponse.user == null) return userResponse; + // np need to update the local user when the user is the same if (userResponse.user == _currentSession?.user) return userResponse;