diff --git a/auth/src/main/java/com/firebase/ui/auth/data/remote/GenericIdpSignInHandler.java b/auth/src/main/java/com/firebase/ui/auth/data/remote/GenericIdpSignInHandler.java index 7e7c6ddcb..03748bec2 100644 --- a/auth/src/main/java/com/firebase/ui/auth/data/remote/GenericIdpSignInHandler.java +++ b/auth/src/main/java/com/firebase/ui/auth/data/remote/GenericIdpSignInHandler.java @@ -86,8 +86,9 @@ protected void handleNormalSignInFlow(final FirebaseAuth auth, @Override public void onSuccess(@NonNull AuthResult authResult) { handleSuccess(provider.getProviderId(), - authResult.getUser(), (OAuthCredential) - authResult.getCredential()); + authResult.getUser(), + (OAuthCredential) authResult.getCredential(), + authResult.getAdditionalUserInfo().isNewUser()); } }) .addOnFailureListener( @@ -135,8 +136,9 @@ private void handleAnonymousUpgradeFlow(final FirebaseAuth auth, @Override public void onSuccess(@NonNull AuthResult authResult) { handleSuccess(provider.getProviderId(), - authResult.getUser(), (OAuthCredential) - authResult.getCredential()); + authResult.getUser(), + (OAuthCredential) authResult.getCredential(), + authResult.getAdditionalUserInfo().isNewUser()); } }) .addOnFailureListener( @@ -221,6 +223,7 @@ protected OAuthProvider buildOAuthProvider(String providerId) { protected void handleSuccess(@NonNull String providerId, @NonNull FirebaseUser user, @NonNull OAuthCredential credential, + boolean isNewUser, boolean setPendingCredential) { IdpResponse.Builder response = new IdpResponse.Builder( new User.Builder( @@ -234,14 +237,16 @@ protected void handleSuccess(@NonNull String providerId, if (setPendingCredential) { response.setPendingCredential(credential); } + response.setNewUser(isNewUser); setResult(Resource.forSuccess(response.build())); } protected void handleSuccess(@NonNull String providerId, @NonNull FirebaseUser user, - @NonNull OAuthCredential credential) { - handleSuccess(providerId, user, credential, /* setPendingCredential= */false); + @NonNull OAuthCredential credential, + boolean isNewUser) { + handleSuccess(providerId, user, credential, isNewUser, /* setPendingCredential= */true); }