Skip to content

Commit e7a9c8f

Browse files
committed
Added protection around user on android to ensure it is not null on auth actions
1 parent 33057ab commit e7a9c8f

File tree

2 files changed

+34
-20
lines changed

2 files changed

+34
-20
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -323,7 +323,7 @@ firestack.createUserWithEmail('[email protected]', '123456')
323323
To sign a user in with their email and password, use the `signInWithEmail()` function. It accepts two parameters, the user's email and password:
324324

325325
```javascript
326-
firestack.signInWithEmail('[email protected]', '123456')
326+
firestack.auth.signInWithEmail('[email protected]', '123456')
327327
.then((user) => {
328328
console.log('User successfully logged in', user)
329329
})

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

Lines changed: 33 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -354,6 +354,7 @@ public void onComplete(@NonNull Task<Void> task) {
354354
@ReactMethod
355355
public void signOut(final Callback callback) {
356356
FirebaseAuth.getInstance().signOut();
357+
user = null;
357358

358359
WritableMap resp = Arguments.createMap();
359360
resp.putString("status", "complete");
@@ -426,25 +427,34 @@ public void userCallback(FirebaseUser passedUser, final Callback onComplete) {
426427
user.getToken(true).addOnCompleteListener(new OnCompleteListener<GetTokenResult>() {
427428
@Override
428429
public void onComplete(@NonNull Task<GetTokenResult> task) {
430+
WritableMap msgMap = Arguments.createMap();
429431
WritableMap userMap = Arguments.createMap();
430-
final String name = user.getDisplayName();
431-
final String token = task.getResult().getToken();
432-
final String email = user.getEmail();
433-
final String uid = user.getUid();
434-
final String provider = user.getProviderId();
435-
final Uri photoUrl = user.getPhotoUrl();
436-
437-
userMap.putString("name", name);
438-
userMap.putString("token", token);
439-
userMap.putString("email", email);
440-
userMap.putString("uid", uid);
441-
userMap.putString("provider", provider);
442-
443-
if (photoUrl!=null) {
444-
userMap.putString("photoUrl",photoUrl.toString());
432+
433+
if (user != null) {
434+
final String name = user.getDisplayName();
435+
final String token = task.getResult().getToken();
436+
final String email = user.getEmail();
437+
final String uid = user.getUid();
438+
final String provider = user.getProviderId();
439+
final Uri photoUrl = user.getPhotoUrl();
440+
441+
userMap.putString("name", name);
442+
userMap.putString("token", token);
443+
userMap.putString("email", email);
444+
userMap.putString("uid", uid);
445+
userMap.putString("providerId", provider);
446+
userMap.putBoolean("anonymous", false);
447+
448+
if (photoUrl!=null) {
449+
userMap.putString("photoUrl",photoUrl.toString());
450+
}
451+
} else {
452+
userMap.putString("msg", "no user");
445453
}
446454

447-
onComplete.invoke(null, userMap);
455+
msgMap.putMap("user", userMap);
456+
457+
onComplete.invoke(null, msgMap);
448458
}
449459
});
450460
}
@@ -473,9 +483,13 @@ private WritableMap getUserMap() {
473483

474484
FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
475485

476-
userMap.putString("email", user.getEmail());
477-
userMap.putString("uid", user.getUid());
478-
userMap.putString("provider", user.getProviderId());
486+
if (user != null) {
487+
userMap.putString("email", user.getEmail());
488+
userMap.putString("uid", user.getUid());
489+
userMap.putString("provider", user.getProviderId());
490+
} else {
491+
userMap.putString("msg", "no user");
492+
}
479493

480494
return userMap;
481495
}

0 commit comments

Comments
 (0)