Skip to content

Commit ca4c8e7

Browse files
committed
fixed several instances where 'user' was not being checked for - would of thrown null exceptions when no user
1 parent b4c56c6 commit ca4c8e7

File tree

1 file changed

+128
-112
lines changed

1 file changed

+128
-112
lines changed

android/src/main/java/io/fullstack/firestack/FirestackAuth.java

Lines changed: 128 additions & 112 deletions
Original file line numberDiff line numberDiff line change
@@ -340,99 +340,108 @@ public void onComplete(@NonNull Task<Void> task) {
340340
public void sendEmailVerification(final Callback callback) {
341341
FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
342342

343-
// TODO check user exists
344-
user.sendEmailVerification()
345-
.addOnCompleteListener(new OnCompleteListener<Void>() {
346-
@Override
347-
public void onComplete(@NonNull Task<Void> task) {
348-
try {
349-
if (task.isSuccessful()) {
350-
WritableMap resp = Arguments.createMap();
351-
resp.putString("status", "complete");
352-
resp.putString("msg", "User verification email sent");
353-
callback.invoke(null, resp);
354-
} else {
355-
WritableMap err = Arguments.createMap();
356-
err.putInt("errorCode", ERROR_SENDING_VERIFICATION_EMAIL);
357-
err.putString("errorMessage", task.getException().getMessage());
358-
callback.invoke(err);
343+
if (user != null) {
344+
user.sendEmailVerification()
345+
.addOnCompleteListener(new OnCompleteListener<Void>() {
346+
@Override
347+
public void onComplete(@NonNull Task<Void> task) {
348+
try {
349+
if (task.isSuccessful()) {
350+
WritableMap resp = Arguments.createMap();
351+
resp.putString("status", "complete");
352+
resp.putString("msg", "User verification email sent");
353+
callback.invoke(null, resp);
354+
} else {
355+
WritableMap err = Arguments.createMap();
356+
err.putInt("errorCode", ERROR_SENDING_VERIFICATION_EMAIL);
357+
err.putString("errorMessage", task.getException().getMessage());
358+
callback.invoke(err);
359+
}
360+
} catch (Exception ex) {
361+
userExceptionCallback(ex, callback);
359362
}
360-
} catch (Exception ex) {
361-
userExceptionCallback(ex, callback);
362363
}
363-
}
364-
});
364+
});
365+
} else {
366+
callbackNoUser(callback, true);
367+
}
365368
}
366369

367370

368371
@ReactMethod
369372
public void getToken(final Callback callback) {
370373
FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
371374

372-
// TODO check user exists
373-
user.getToken(true)
374-
.addOnCompleteListener(new OnCompleteListener<GetTokenResult>() {
375-
@Override
376-
public void onComplete(@NonNull Task<GetTokenResult> task) {
377-
try {
378-
if (task.isSuccessful()) {
379-
String token = task.getResult().getToken();
380-
WritableMap resp = Arguments.createMap();
381-
resp.putString("status", "complete");
382-
resp.putString("token", token);
383-
callback.invoke(null, resp);
384-
} else {
385-
WritableMap err = Arguments.createMap();
386-
err.putInt("errorCode", ERROR_FETCHING_TOKEN);
387-
err.putString("errorMessage", task.getException().getMessage());
388-
callback.invoke(err);
375+
if (user != null) {
376+
user.getToken(true)
377+
.addOnCompleteListener(new OnCompleteListener<GetTokenResult>() {
378+
@Override
379+
public void onComplete(@NonNull Task<GetTokenResult> task) {
380+
try {
381+
if (task.isSuccessful()) {
382+
String token = task.getResult().getToken();
383+
WritableMap resp = Arguments.createMap();
384+
resp.putString("status", "complete");
385+
resp.putString("token", token);
386+
callback.invoke(null, resp);
387+
} else {
388+
WritableMap err = Arguments.createMap();
389+
err.putInt("errorCode", ERROR_FETCHING_TOKEN);
390+
err.putString("errorMessage", task.getException().getMessage());
391+
callback.invoke(err);
392+
}
393+
} catch (Exception ex) {
394+
userExceptionCallback(ex, callback);
389395
}
390-
} catch (Exception ex) {
391-
userExceptionCallback(ex, callback);
392396
}
393-
}
394-
});
397+
});
398+
} else {
399+
callbackNoUser(callback, true);
400+
}
395401
}
396402

397403
@ReactMethod
398404
public void updateUserProfile(ReadableMap props, final Callback callback) {
399405
FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
400406

401-
UserProfileChangeRequest.Builder profileBuilder = new UserProfileChangeRequest.Builder();
407+
if (user != null) {
408+
UserProfileChangeRequest.Builder profileBuilder = new UserProfileChangeRequest.Builder();
402409

403-
Map<String, Object> m = FirestackUtils.recursivelyDeconstructReadableMap(props);
410+
Map<String, Object> m = FirestackUtils.recursivelyDeconstructReadableMap(props);
404411

405-
if (m.containsKey("displayName")) {
406-
String displayName = (String) m.get("displayName");
407-
profileBuilder.setDisplayName(displayName);
408-
}
412+
if (m.containsKey("displayName")) {
413+
String displayName = (String) m.get("displayName");
414+
profileBuilder.setDisplayName(displayName);
415+
}
409416

410-
if (m.containsKey("photoUri")) {
411-
String photoUriStr = (String) m.get("photoUri");
412-
Uri uri = Uri.parse(photoUriStr);
413-
profileBuilder.setPhotoUri(uri);
414-
}
417+
if (m.containsKey("photoUri")) {
418+
String photoUriStr = (String) m.get("photoUri");
419+
Uri uri = Uri.parse(photoUriStr);
420+
profileBuilder.setPhotoUri(uri);
421+
}
415422

416-
UserProfileChangeRequest profileUpdates = profileBuilder.build();
423+
UserProfileChangeRequest profileUpdates = profileBuilder.build();
417424

418-
// TODO check user exists
419-
user.updateProfile(profileUpdates)
420-
.addOnCompleteListener(new OnCompleteListener<Void>() {
421-
@Override
422-
public void onComplete(@NonNull Task<Void> task) {
423-
try {
424-
if (task.isSuccessful()) {
425-
Log.d(TAG, "User profile updated");
426-
FirebaseUser u = FirebaseAuth.getInstance().getCurrentUser();
427-
userCallback(u, callback);
428-
} else {
429-
userErrorCallback(task, callback);
425+
user.updateProfile(profileUpdates)
426+
.addOnCompleteListener(new OnCompleteListener<Void>() {
427+
@Override
428+
public void onComplete(@NonNull Task<Void> task) {
429+
try {
430+
if (task.isSuccessful()) {
431+
Log.d(TAG, "User profile updated");
432+
FirebaseUser u = FirebaseAuth.getInstance().getCurrentUser();
433+
userCallback(u, callback);
434+
} else {
435+
userErrorCallback(task, callback);
436+
}
437+
} catch (Exception ex) {
438+
userExceptionCallback(ex, callback);
430439
}
431-
} catch (Exception ex) {
432-
userExceptionCallback(ex, callback);
433440
}
434-
}
435-
});
441+
});
442+
} else {
443+
callbackNoUser(callback, true);
444+
}
436445
}
437446

438447
@ReactMethod
@@ -516,30 +525,33 @@ public void userCallback(FirebaseUser passedUser, final Callback callback) {
516525
this.user = passedUser;
517526
}
518527

519-
// TODO check user exists
520-
this.user.getToken(true).addOnCompleteListener(new OnCompleteListener<GetTokenResult>() {
521-
@Override
522-
public void onComplete(@NonNull Task<GetTokenResult> task) {
523-
// TODO - no task is successful check...
524-
WritableMap msgMap = Arguments.createMap();
525-
WritableMap userMap = getUserMap();
526-
if (FirestackAuthModule.this.user != null) {
527-
final String token = task.getResult().getToken();
528-
529-
userMap.putString("token", token);
530-
userMap.putBoolean("anonymous", false);
531-
}
528+
if (this.user != null) {
529+
this.user.getToken(true).addOnCompleteListener(new OnCompleteListener<GetTokenResult>() {
530+
@Override
531+
public void onComplete(@NonNull Task<GetTokenResult> task) {
532+
// TODO - no task is successful check...
533+
WritableMap msgMap = Arguments.createMap();
534+
WritableMap userMap = getUserMap();
535+
if (FirestackAuthModule.this.user != null) {
536+
final String token = task.getResult().getToken();
532537

533-
msgMap.putMap("user", userMap);
538+
userMap.putString("token", token);
539+
userMap.putBoolean("anonymous", false);
540+
}
534541

535-
callback.invoke(null, msgMap);
536-
}
537-
}).addOnFailureListener(new OnFailureListener() {
538-
@Override
539-
public void onFailure(@NonNull Exception ex) {
540-
userExceptionCallback(ex, callback);
541-
}
542-
});
542+
msgMap.putMap("user", userMap);
543+
544+
callback.invoke(null, msgMap);
545+
}
546+
}).addOnFailureListener(new OnFailureListener() {
547+
@Override
548+
public void onFailure(@NonNull Exception ex) {
549+
userExceptionCallback(ex, callback);
550+
}
551+
});
552+
} else {
553+
callbackNoUser(callback, true);
554+
}
543555
}
544556

545557
// TODO: Reduce to one method
@@ -552,32 +564,36 @@ public void anonymousUserCallback(FirebaseUser passedUser, final Callback callba
552564
this.user = passedUser;
553565
}
554566

555-
this.user.getToken(true)
556-
.addOnCompleteListener(new OnCompleteListener<GetTokenResult>() {
557-
@Override
558-
public void onComplete(@NonNull Task<GetTokenResult> task) {
559-
// TODO - no task is successful check...
567+
if (this.user != null) {
568+
this.user.getToken(true)
569+
.addOnCompleteListener(new OnCompleteListener<GetTokenResult>() {
570+
@Override
571+
public void onComplete(@NonNull Task<GetTokenResult> task) {
572+
// TODO - no task is successful check...
560573

561-
WritableMap msgMap = Arguments.createMap();
562-
WritableMap userMap = getUserMap();
574+
WritableMap msgMap = Arguments.createMap();
575+
WritableMap userMap = getUserMap();
563576

564-
if (FirestackAuthModule.this.user != null) {
565-
final String token = task.getResult().getToken();
577+
if (FirestackAuthModule.this.user != null) {
578+
final String token = task.getResult().getToken();
566579

567-
userMap.putString("token", token);
568-
userMap.putBoolean("anonymous", true);
569-
}
580+
userMap.putString("token", token);
581+
userMap.putBoolean("anonymous", true);
582+
}
570583

571-
msgMap.putMap("user", userMap);
584+
msgMap.putMap("user", userMap);
572585

573-
callback.invoke(null, msgMap);
574-
}
575-
}).addOnFailureListener(new OnFailureListener() {
576-
@Override
577-
public void onFailure(@NonNull Exception ex) {
578-
userExceptionCallback(ex, callback);
579-
}
580-
});
586+
callback.invoke(null, msgMap);
587+
}
588+
}).addOnFailureListener(new OnFailureListener() {
589+
@Override
590+
public void onFailure(@NonNull Exception ex) {
591+
userExceptionCallback(ex, callback);
592+
}
593+
});
594+
} else {
595+
callbackNoUser(callback, true);
596+
}
581597
}
582598

583599
public void userErrorCallback(Task task, final Callback onFail) {

0 commit comments

Comments
 (0)