Fix race condition and add more log statements
This commit is contained in:
@@ -4,10 +4,8 @@ import com.google.firebase.FirebaseApp
|
|||||||
import com.google.firebase.FirebaseOptions
|
import com.google.firebase.FirebaseOptions
|
||||||
import com.google.firebase.auth.*
|
import com.google.firebase.auth.*
|
||||||
import com.google.firebase.internal.NonNull
|
import com.google.firebase.internal.NonNull
|
||||||
import com.google.firebase.tasks.OnCompleteListener
|
|
||||||
import com.google.firebase.tasks.OnFailureListener
|
import com.google.firebase.tasks.OnFailureListener
|
||||||
import com.google.firebase.tasks.OnSuccessListener
|
import com.google.firebase.tasks.OnSuccessListener
|
||||||
import com.google.firebase.tasks.Task
|
|
||||||
import io.kamax.matrix.MatrixID
|
import io.kamax.matrix.MatrixID
|
||||||
import io.kamax.matrix.ThreePidMedium
|
import io.kamax.matrix.ThreePidMedium
|
||||||
import io.kamax.mxisd.GlobalProvider
|
import io.kamax.mxisd.GlobalProvider
|
||||||
@@ -101,35 +99,32 @@ public class GoogleFirebaseAuthenticator implements GlobalProvider {
|
|||||||
OnSuccessListener<UserRecord> success = new OnSuccessListener<UserRecord>() {
|
OnSuccessListener<UserRecord> success = new OnSuccessListener<UserRecord>() {
|
||||||
@Override
|
@Override
|
||||||
void onSuccess(UserRecord result) {
|
void onSuccess(UserRecord result) {
|
||||||
|
log.info("Found 3PID match for {}:{} - UID is {}", medium, address, result.getUid())
|
||||||
r = result;
|
r = result;
|
||||||
|
l.countDown()
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
OnFailureListener failure = new OnFailureListener() {
|
OnFailureListener failure = new OnFailureListener() {
|
||||||
@Override
|
@Override
|
||||||
void onFailure(@NonNull Exception e) {
|
void onFailure(@NonNull Exception e) {
|
||||||
|
log.info("No 3PID match for {}:{} - {}", medium, address, e.getMessage())
|
||||||
r = null;
|
r = null;
|
||||||
}
|
l.countDown()
|
||||||
};
|
|
||||||
|
|
||||||
OnCompleteListener<UserRecord> complete = new OnCompleteListener<UserRecord>() {
|
|
||||||
@Override
|
|
||||||
void onComplete(@NonNull Task<UserRecord> task) {
|
|
||||||
l.countDown();
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
if (ThreePidMedium.Email.is(medium)) {
|
if (ThreePidMedium.Email.is(medium)) {
|
||||||
|
log.info("Performing E-mail 3PID lookup for {}", address)
|
||||||
fbAuth.getUserByEmail(address)
|
fbAuth.getUserByEmail(address)
|
||||||
.addOnSuccessListener(success)
|
.addOnSuccessListener(success)
|
||||||
.addOnFailureListener(failure)
|
.addOnFailureListener(failure);
|
||||||
.addOnCompleteListener(complete);
|
|
||||||
waitOnLatch(l);
|
waitOnLatch(l);
|
||||||
} else if (ThreePidMedium.PhoneNumber.is(medium)) {
|
} else if (ThreePidMedium.PhoneNumber.is(medium)) {
|
||||||
|
log.info("Performing msisdn 3PID lookup for {}", address)
|
||||||
fbAuth.getUserByPhoneNumber(address)
|
fbAuth.getUserByPhoneNumber(address)
|
||||||
.addOnSuccessListener(success)
|
.addOnSuccessListener(success)
|
||||||
.addOnFailureListener(failure)
|
.addOnFailureListener(failure);
|
||||||
.addOnCompleteListener(complete);
|
|
||||||
waitOnLatch(l);
|
waitOnLatch(l);
|
||||||
} else {
|
} else {
|
||||||
log.info("{} is not a supported 3PID medium", medium);
|
log.info("{} is not a supported 3PID medium", medium);
|
||||||
@@ -203,6 +198,7 @@ public class GoogleFirebaseAuthenticator implements GlobalProvider {
|
|||||||
|
|
||||||
log.info("{} was successfully authenticated", id);
|
log.info("{} was successfully authenticated", id);
|
||||||
result.success(id, token.getName());
|
result.success(id, token.getName());
|
||||||
|
l.countDown()
|
||||||
}
|
}
|
||||||
}).addOnFailureListener(new OnFailureListener() {
|
}).addOnFailureListener(new OnFailureListener() {
|
||||||
@Override
|
@Override
|
||||||
@@ -215,10 +211,6 @@ public class GoogleFirebaseAuthenticator implements GlobalProvider {
|
|||||||
}
|
}
|
||||||
|
|
||||||
result.failure();
|
result.failure();
|
||||||
}
|
|
||||||
}).addOnCompleteListener(new OnCompleteListener<FirebaseToken>() {
|
|
||||||
@Override
|
|
||||||
void onComplete(@NonNull Task<FirebaseToken> task) {
|
|
||||||
l.countDown()
|
l.countDown()
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
Reference in New Issue
Block a user