Skip to content

Fix auth user and user map #95

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 9 commits into from
Nov 4, 2016
14 changes: 7 additions & 7 deletions android/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -20,13 +20,13 @@ android {

dependencies {
compile 'com.facebook.react:react-native:0.20.+'
compile 'com.google.android.gms:play-services-base:9.6.1'
compile 'com.google.android.gms:play-services-base:9.8.0'

compile 'com.google.firebase:firebase-core:9.6.0'
compile 'com.google.firebase:firebase-auth:9.6.0'
compile 'com.google.firebase:firebase-analytics:9.6.0'
compile 'com.google.firebase:firebase-database:9.6.0'
compile 'com.google.firebase:firebase-storage:9.6.0'
compile 'com.google.firebase:firebase-messaging:9.6.0'
compile 'com.google.firebase:firebase-core:9.8.0'
compile 'com.google.firebase:firebase-auth:9.8.0'
compile 'com.google.firebase:firebase-analytics:9.8.0'
compile 'com.google.firebase:firebase-database:9.8.0'
compile 'com.google.firebase:firebase-storage:9.8.0'
compile 'com.google.firebase:firebase-messaging:9.8.0'
}

73 changes: 35 additions & 38 deletions android/src/main/java/io/fullstack/firestack/FirestackAuth.java
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) {
WritableMap msgMap = Arguments.createMap();
msgMap.putString("eventName", "listenForAuth");

if (user != null) {
if (FirestackAuthModule.this.user != null) {
WritableMap userMap = getUserMap();

msgMap.putBoolean("authenticated", true);
Expand Down Expand Up @@ -107,8 +107,8 @@ public void createUserWithEmail(final String email, final String password, final
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if (task.isSuccessful()) {
user = task.getResult().getUser();
userCallback(user, onComplete);
FirestackAuthModule.this.user = task.getResult().getUser();
userCallback(FirestackAuthModule.this.user, onComplete);
}else{
userErrorCallback(task, onComplete);
}
Expand All @@ -125,8 +125,8 @@ public void signInWithEmail(final String email, final String password, final Cal
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if (task.isSuccessful()) {
user = task.getResult().getUser();
userCallback(user, callback);
FirestackAuthModule.this.user = task.getResult().getUser();
userCallback(FirestackAuthModule.this.user, callback);
} else {
userErrorCallback(task, callback);
}
Expand Down Expand Up @@ -156,8 +156,8 @@ public void onComplete(@NonNull Task<AuthResult> task) {
Log.d(TAG, "signInAnonymously:onComplete:" + task.isSuccessful());

if (task.isSuccessful()) {
user = task.getResult().getUser();
anonymousUserCallback(user, callback);
FirestackAuthModule.this.user = task.getResult().getUser();
anonymousUserCallback(FirestackAuthModule.this.user, callback);
}else{
userErrorCallback(task, callback);
}
Expand All @@ -176,8 +176,8 @@ public void signInWithCustomToken(final String customToken, final Callback callb
public void onComplete(@NonNull Task<AuthResult> task) {
Log.d(TAG, "signInWithCustomToken:onComplete:" + task.isSuccessful());
if (task.isSuccessful()) {
user = task.getResult().getUser();
userCallback(user, callback);
FirestackAuthModule.this.user = task.getResult().getUser();
userCallback(FirestackAuthModule.this.user, callback);
} else {
userErrorCallback(task, callback);
}
Expand Down Expand Up @@ -356,7 +356,7 @@ public void onComplete(@NonNull Task<Void> task) {
@ReactMethod
public void signOut(final Callback callback) {
FirebaseAuth.getInstance().signOut();
user = null;
this.user = null;

WritableMap resp = Arguments.createMap();
resp.putString("status", "complete");
Expand All @@ -368,11 +368,11 @@ public void signOut(final Callback callback) {
public void getCurrentUser(final Callback callback) {
mAuth = FirebaseAuth.getInstance();

user = mAuth.getCurrentUser();
if(user == null){
this.user = mAuth.getCurrentUser();
if(this.user == null){
noUserCallback(callback);
}else{
userCallback(user, callback);
userCallback(this.user, callback);
}
}

Expand All @@ -387,8 +387,8 @@ public void googleLogin(String IdToken, final Callback callback) {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if (task.isSuccessful()) {
user = task.getResult().getUser();
userCallback(user, callback);
FirestackAuthModule.this.user = task.getResult().getUser();
userCallback(FirestackAuthModule.this.user, callback);
}else{
userErrorCallback(task, callback);
}
Expand All @@ -406,8 +406,8 @@ public void facebookLogin(String Token, final Callback callback) {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if (task.isSuccessful()) {
user = task.getResult().getUser();
userCallback(user, callback);
FirestackAuthModule.this.user = task.getResult().getUser();
userCallback(FirestackAuthModule.this.user, callback);
}else{
userErrorCallback(task, callback);
}
Expand All @@ -417,26 +417,24 @@ public void onComplete(@NonNull Task<AuthResult> task) {

// Internal helpers
public void userCallback(FirebaseUser passedUser, final Callback onComplete) {
WritableMap userMap = getUserMap();

if (passedUser == null) {
mAuth = FirebaseAuth.getInstance();
final FirebaseUser user = mAuth.getCurrentUser();
this.user = mAuth.getCurrentUser();
} else {
final FirebaseUser user = passedUser;
this.user = passedUser;
}

user.getToken(true).addOnCompleteListener(new OnCompleteListener<GetTokenResult>() {
this.user.getToken(true).addOnCompleteListener(new OnCompleteListener<GetTokenResult>() {
@Override
public void onComplete(@NonNull Task<GetTokenResult> task) {
WritableMap msgMap = Arguments.createMap();
WritableMap userMap = Arguments.createMap();

if (user != null) {
final String token = task.getResult().getToken();
WritableMap msgMap = Arguments.createMap();
WritableMap userMap = getUserMap();
if (FirestackAuthModule.this.user != null) {
final String token = task.getResult().getToken();

userMap.putString("token", token);
userMap.putBoolean("anonymous", false);
userMap.putString("token", token);
userMap.putBoolean("anonymous", false);
}

msgMap.putMap("user", userMap);
Expand All @@ -448,26 +446,25 @@ public void onComplete(@NonNull Task<GetTokenResult> task) {

// TODO: Reduce to one method
public void anonymousUserCallback(FirebaseUser passedUser, final Callback onComplete) {
WritableMap userMap = getUserMap();

if (passedUser == null) {
mAuth = FirebaseAuth.getInstance();
final FirebaseUser user = mAuth.getCurrentUser();
this.user = mAuth.getCurrentUser();
} else {
final FirebaseUser user = passedUser;
this.user = passedUser;
}

user.getToken(true).addOnCompleteListener(new OnCompleteListener<GetTokenResult>() {
this.user.getToken(true).addOnCompleteListener(new OnCompleteListener<GetTokenResult>() {
@Override
public void onComplete(@NonNull Task<GetTokenResult> task) {
WritableMap msgMap = Arguments.createMap();
WritableMap userMap = Arguments.createMap();
WritableMap msgMap = Arguments.createMap();
WritableMap userMap = getUserMap();

if (user != null) {
final String token = task.getResult().getToken();
if (FirestackAuthModule.this.user != null) {
final String token = task.getResult().getToken();

userMap.putString("token", token);
userMap.putBoolean("anonymous", true);
userMap.putString("token", token);
userMap.putBoolean("anonymous", true);
}

msgMap.putMap("user", userMap);
Expand Down
Loading