Skip to content

Commit b605f0c

Browse files
author
Aaron Mandle
committed
better logging and error handling
Change-Id: Ic915951518f5599cee753b6f476b27031f7f7004
1 parent 495ff49 commit b605f0c

9 files changed

+120
-62
lines changed

auth/src/main/java/com/firebase/ui/auth/ui/AcquireEmailHelper.java

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616

1717
import android.content.Intent;
1818
import android.support.annotation.NonNull;
19+
import android.util.Log;
1920

2021
import com.firebase.ui.auth.R;
2122
import com.firebase.ui.auth.ui.account_link.WelcomeBackIDPPrompt;
@@ -31,6 +32,7 @@
3132
import java.util.List;
3233

3334
public class AcquireEmailHelper {
35+
private static final String TAG = "AcquireEmailHelper";
3436
public static final int RC_REGISTER_ACCOUNT = 14;
3537
public static final int RC_WELCOME_BACK_IDP = 15;
3638
public static final int RC_SIGN_IN = 16;
@@ -54,7 +56,13 @@ public void checkAccountExists(final String email) {
5456
new OnCompleteListener<ProviderQueryResult>() {
5557
@Override
5658
public void onComplete(@NonNull Task<ProviderQueryResult> task) {
57-
startEmailHandler(email, task.getResult().getProviders());
59+
if (task.isSuccessful()) {
60+
startEmailHandler(email, task.getResult().getProviders());
61+
} else {
62+
mActivityHelper.dismissDialog();
63+
Log.e(TAG, "Error fetching providers for email",
64+
task.getException());
65+
}
5866
}
5967
}
6068
);

auth/src/main/java/com/firebase/ui/auth/ui/ChooseAccountActivity.java

Lines changed: 23 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@
3030
import com.google.android.gms.auth.api.credentials.Credential;
3131
import com.google.android.gms.auth.api.credentials.IdentityProviders;
3232
import com.google.android.gms.tasks.OnCompleteListener;
33-
import com.google.android.gms.tasks.OnFailureListener;
3433
import com.google.android.gms.tasks.Task;
3534
import com.google.firebase.auth.AuthResult;
3635
import com.google.firebase.auth.EmailAuthProvider;
@@ -71,7 +70,7 @@ public void onAsyncTaskFinished() {
7170
@Override
7271
protected void onStart() {
7372
super.onStart();
74-
if (mCredentialsApi.isGoogleApiClient()){
73+
if (mCredentialsApi.isGoogleApiClient()) {
7574
mCredentialsApi.getGoogleApiClient().connect();
7675
}
7776
}
@@ -101,7 +100,12 @@ public void onCredentialsApiConnected() {
101100
.addOnCompleteListener(new OnCompleteListener<AuthResult>() {
102101
@Override
103102
public void onComplete(@NonNull Task<AuthResult> task) {
104-
finish(Activity.RESULT_OK, new Intent());
103+
if (task.isSuccessful()) {
104+
finish(Activity.RESULT_OK, new Intent());
105+
} else {
106+
Log.e(TAG, "Unsuccessful sign in with email and password",
107+
task.getException());
108+
}
105109
}
106110
});
107111
} else {
@@ -121,7 +125,7 @@ public void onComplete(@NonNull Task<AuthResult> task) {
121125

122126
private void startAuthMethodChoice() {
123127
List<IDPProviderParcel> providers = mActivityHelper.flowParams.providerInfo;
124-
if ( providers.size() == 1
128+
if (providers.size() == 1
125129
&& providers.get(0).getProviderType().equals(EmailAuthProvider.PROVIDER_ID)) {
126130

127131
startActivityForResult(
@@ -138,7 +142,10 @@ private void startAuthMethodChoice() {
138142
}
139143
}
140144

141-
private void logInWithCredential(final String email, final String password, final String accountType) {
145+
private void logInWithCredential(
146+
final String email,
147+
final String password,
148+
final String accountType) {
142149
if (email != null
143150
&& mCredentialsApi.isCredentialsAvailable()
144151
&& !mCredentialsApi.isSignInResolutionNeeded()) {
@@ -148,17 +155,17 @@ private void logInWithCredential(final String email, final String password, fina
148155
.addOnCompleteListener(new OnCompleteListener<AuthResult>() {
149156
@Override
150157
public void onComplete(@NonNull Task<AuthResult> task) {
151-
finish(RESULT_OK, new Intent());
152-
}
153-
})
154-
.addOnFailureListener(new OnFailureListener() {
155-
@Override
156-
public void onFailure(@NonNull Exception ex) {
157-
// email/password auth failed, go to the AuthMethodPickerActivity
158-
startActivity(AuthMethodPickerActivity.createIntent(
159-
ChooseAccountActivity.this,
160-
mActivityHelper.flowParams));
161-
finish(RESULT_OK, new Intent());
158+
if (task.isSuccessful()) {
159+
finish(RESULT_OK, new Intent());
160+
} else {
161+
// email/password auth failed, go to the
162+
// AuthMethodPickerActivity
163+
startActivityForResult(
164+
AuthMethodPickerActivity.createIntent(
165+
ChooseAccountActivity.this,
166+
mActivityHelper.flowParams),
167+
RC_AUTH_METHOD_PICKER);
168+
}
162169
}
163170
});
164171
} else {

auth/src/main/java/com/firebase/ui/auth/ui/account_link/AccountLinkInitActivity.java

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
import android.content.Intent;
1919
import android.os.Bundle;
2020
import android.support.annotation.NonNull;
21+
import android.util.Log;
2122

2223
import com.firebase.ui.auth.R;
2324
import com.firebase.ui.auth.provider.IDPResponse;
@@ -27,7 +28,8 @@
2728
import com.firebase.ui.auth.ui.FlowParameters;
2829
import com.firebase.ui.auth.util.FirebaseAuthWrapper;
2930
import com.firebase.ui.auth.util.FirebaseAuthWrapperFactory;
30-
import com.google.android.gms.tasks.OnCompleteListener;
31+
import com.google.android.gms.tasks.OnFailureListener;
32+
import com.google.android.gms.tasks.OnSuccessListener;
3133
import com.google.android.gms.tasks.Task;
3234
import com.google.firebase.auth.EmailAuthProvider;
3335
import com.google.firebase.auth.FirebaseAuth;
@@ -37,11 +39,13 @@
3739
import java.util.List;
3840

3941
public class AccountLinkInitActivity extends AppCompatBase {
40-
private IDPResponse mIdpResponse;
42+
private static final String TAG = "AccountLinkInitActivity";
4143
private static final int RC_SAVE_CREDENTIALS = 3;
4244
private static final int RC_WELCOME_BACK_IDP_PROMPT = 4;
4345
private static final int RC_WELCOME_BACK_PASSWORD_PROMPT = 5;
4446

47+
private IDPResponse mIdpResponse;
48+
4549
// request codes where we pass the result back to the calling activity
4650
private static final List<Integer> CHECKED_REQUEST_CODES = Arrays.asList(
4751
RC_WELCOME_BACK_IDP_PROMPT,
@@ -78,12 +82,12 @@ void next(final String email, final String password, final String provider) {
7882
FirebaseAuth firebaseAuth = mActivityHelper.getFirebaseAuth();
7983
Task<ProviderQueryResult> providerQueryResultTask
8084
= firebaseAuth.fetchProvidersForEmail(email);
81-
providerQueryResultTask.addOnCompleteListener(
82-
new OnCompleteListener<ProviderQueryResult>() {
85+
providerQueryResultTask.addOnSuccessListener(
86+
new OnSuccessListener<ProviderQueryResult>() {
8387
@Override
84-
public void onComplete(@NonNull Task<ProviderQueryResult> task) {
88+
public void onSuccess(@NonNull ProviderQueryResult result) {
8589
mActivityHelper.dismissDialog();
86-
List<String> providers = task.getResult().getProviders();
90+
List<String> providers = result.getProviders();
8791
if (providers.size() == 0) {
8892
// new account for this email
8993
startActivityForResult(SaveCredentialsActivity.createIntent(
@@ -149,6 +153,12 @@ public void onComplete(@NonNull Task<ProviderQueryResult> task) {
149153
}
150154
}
151155
}
156+
})
157+
.addOnFailureListener(new OnFailureListener() {
158+
@Override
159+
public void onFailure(@NonNull Exception e) {
160+
Log.e(TAG, "Error querying providers", e);
161+
}
152162
});
153163
}
154164

auth/src/main/java/com/firebase/ui/auth/ui/account_link/WelcomeBackIDPPrompt.java

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -169,8 +169,12 @@ public void onComplete(@NonNull Task<AuthResult> task) {
169169
@Override
170170
public void onComplete(@NonNull Task<AuthResult> task) {
171171
mActivityHelper.dismissDialog();
172+
if (!task.isSuccessful()) {
173+
Log.e(TAG,
174+
"Error signing in with credential",
175+
task.getException());
176+
}
172177
finish(Activity.RESULT_OK, new Intent());
173-
174178
}
175179
}
176180
);
@@ -187,6 +191,9 @@ public void onComplete(@NonNull Task<AuthResult> task) {
187191
@Override
188192
public void onComplete(@NonNull Task<AuthResult> task) {
189193
mActivityHelper.dismissDialog();
194+
if (!task.isSuccessful()) {
195+
Log.e(TAG, "Error linking with credential", task.getException());
196+
}
190197
finish(Activity.RESULT_OK, new Intent());
191198
}
192199
});

auth/src/main/java/com/firebase/ui/auth/ui/account_link/WelcomeBackPasswordPrompt.java

Lines changed: 32 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
import android.text.Spannable;
2525
import android.text.SpannableStringBuilder;
2626
import android.text.style.StyleSpan;
27+
import android.util.Log;
2728
import android.view.View;
2829
import android.widget.Button;
2930
import android.widget.EditText;
@@ -40,6 +41,8 @@
4041
import com.firebase.ui.auth.ui.email.PasswordToggler;
4142
import com.firebase.ui.auth.ui.email.RecoverPasswordActivity;
4243
import com.google.android.gms.tasks.OnCompleteListener;
44+
import com.google.android.gms.tasks.OnFailureListener;
45+
import com.google.android.gms.tasks.OnSuccessListener;
4346
import com.google.android.gms.tasks.Task;
4447
import com.google.firebase.auth.AuthCredential;
4548
import com.google.firebase.auth.AuthResult;
@@ -48,6 +51,7 @@
4851

4952
public class WelcomeBackPasswordPrompt extends AppCompatBase implements View.OnClickListener {
5053
private static final int RC_CREDENTIAL_SAVE = 3;
54+
private static final String TAG = "WelcomeBackPassword";
5155
final StyleSpan bold = new StyleSpan(Typeface.BOLD);
5256
private String mEmail;
5357
private TextInputLayout mPasswordLayout;
@@ -115,30 +119,36 @@ public void onComplete(@NonNull Task<AuthResult> task) {
115119
task.getResult().getUser().linkWithCredential(authCredential);
116120
firebaseAuth.signOut();
117121

118-
firebaseAuth.signInWithCredential(authCredential).addOnCompleteListener(
119-
new OnCompleteListener<AuthResult>() {
120-
@Override
121-
public void onComplete(@NonNull Task<AuthResult> task) {
122-
FirebaseUser firebaseUser = task.getResult().getUser();
123-
String photoUrl = null;
124-
Uri photoUri = firebaseUser.getPhotoUrl();
125-
if (photoUri != null) {
126-
photoUrl = photoUri.toString();
122+
firebaseAuth.signInWithCredential(authCredential)
123+
.addOnSuccessListener(
124+
new OnSuccessListener<AuthResult>() {
125+
@Override
126+
public void onSuccess(AuthResult authResult) {
127+
FirebaseUser firebaseUser = authResult.getUser();
128+
String photoUrl = null;
129+
Uri photoUri = firebaseUser.getPhotoUrl();
130+
if (photoUri != null) {
131+
photoUrl = photoUri.toString();
132+
}
133+
mActivityHelper.dismissDialog();
134+
startActivityForResult(
135+
SaveCredentialsActivity.createIntent(
136+
mActivityHelper.getApplicationContext(),
137+
mActivityHelper.flowParams,
138+
firebaseUser.getDisplayName(),
139+
firebaseUser.getEmail(),
140+
password,
141+
null,
142+
photoUrl
143+
), RC_CREDENTIAL_SAVE);
127144
}
128-
mActivityHelper.dismissDialog();
129-
startActivityForResult(
130-
SaveCredentialsActivity.createIntent(
131-
mActivityHelper.getApplicationContext(),
132-
mActivityHelper.flowParams,
133-
firebaseUser.getDisplayName(),
134-
firebaseUser.getEmail(),
135-
password,
136-
null,
137-
photoUrl
138-
), RC_CREDENTIAL_SAVE);
145+
})
146+
.addOnFailureListener(new OnFailureListener() {
147+
@Override
148+
public void onFailure(@NonNull Exception e) {
149+
Log.e(TAG, "Error signing in with credential", e);
139150
}
140-
}
141-
);
151+
});
142152
} else {
143153
String error = task.getException().getLocalizedMessage();
144154
mPasswordLayout.setError(error);

auth/src/main/java/com/firebase/ui/auth/ui/email/RecoverPasswordActivity.java

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
import android.os.Bundle;
2020
import android.support.annotation.NonNull;
2121
import android.support.design.widget.TextInputLayout;
22+
import android.util.Log;
2223
import android.view.View;
2324
import android.widget.Button;
2425
import android.widget.EditText;
@@ -34,6 +35,7 @@
3435
import com.google.firebase.auth.FirebaseAuth;
3536

3637
public class RecoverPasswordActivity extends AppCompatBase implements View.OnClickListener {
38+
private static final String TAG = "RecoverPasswordActivity";
3739
private static final int RC_CONFIRM = 3;
3840
private EditText mEmailEditText;
3941
private EmailFieldValidator mEmailFieldValidator;
@@ -64,12 +66,16 @@ private void next(final String email) {
6466
@Override
6567
public void onComplete(@NonNull Task<Void> task) {
6668
mActivityHelper.dismissDialog();
67-
Intent confirmIntent = ConfirmRecoverPasswordActivity.createIntent(
68-
RecoverPasswordActivity.this,
69-
mActivityHelper.flowParams,
70-
task.isSuccessful(),
71-
email);
72-
startActivityForResult(confirmIntent, RC_CONFIRM);
69+
if (task.isSuccessful()) {
70+
Intent confirmIntent = ConfirmRecoverPasswordActivity.createIntent(
71+
RecoverPasswordActivity.this,
72+
mActivityHelper.flowParams,
73+
task.isSuccessful(),
74+
email);
75+
startActivityForResult(confirmIntent, RC_CONFIRM);
76+
} else {
77+
Log.e(TAG, "Error sending password reset email", task.getException());
78+
}
7379
}
7480
});
7581
}

auth/src/main/java/com/firebase/ui/auth/ui/email/RegisterEmailActivity.java

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
import android.support.v4.content.ContextCompat;
2424
import android.text.SpannableStringBuilder;
2525
import android.text.style.ForegroundColorSpan;
26+
import android.util.Log;
2627
import android.util.TypedValue;
2728
import android.view.View;
2829
import android.widget.Button;
@@ -49,6 +50,7 @@
4950

5051
public class RegisterEmailActivity extends AppCompatBase implements View.OnClickListener {
5152
private static final int RC_SAVE_CREDENTIAL = 3;
53+
private static final String TAG = "RegisterEmailActivity";
5254
private EditText mEmailEditText;
5355
private EditText mPasswordEditText;
5456
private EditText mNameEditText;
@@ -157,7 +159,12 @@ public void onComplete(@NonNull Task<AuthResult> task) {
157159
@Override
158160
public void onComplete(@NonNull Task<Void> task) {
159161
mActivityHelper.dismissDialog();
160-
startSaveCredentials(firebaseUser, password);
162+
if (task.isSuccessful()) {
163+
startSaveCredentials(firebaseUser, password);
164+
} else {
165+
Log.e(TAG, "Error setting display name",
166+
task.getException());
167+
}
161168
}
162169
});
163170
} else {

auth/src/main/java/com/firebase/ui/auth/ui/idp/AuthMethodPickerActivity.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,7 @@ public void onSuccess(final IDPResponse response) {
155155
AuthCredential credential = createCredential(response);
156156
final FirebaseAuth firebaseAuth = mActivityHelper.getFirebaseAuth();
157157

158-
firebaseAuth.signInWithCredential(credential).addOnCompleteListener(
158+
firebaseAuth.signInWithCredential(credential).addOnCompleteListener(
159159
new OnCompleteListener<AuthResult>() {
160160
@Override
161161
public void onComplete(@NonNull Task<AuthResult> task) {
@@ -192,6 +192,10 @@ public void onComplete(
192192
}
193193
}
194194
});
195+
} else {
196+
mActivityHelper.dismissDialog();
197+
Log.e(TAG, "Unexpected exception when signing in with " +
198+
"credential", task.getException());
195199
}
196200
} else {
197201
FirebaseUser firebaseUser = task.getResult().getUser();
@@ -224,6 +228,7 @@ public void onFailure(@NonNull Exception e) {
224228
@Override
225229
public void onFailure(Bundle extra) {
226230
// stay on this screen
231+
mActivityHelper.dismissDialog();
227232
}
228233

229234
@Override

0 commit comments

Comments
 (0)