I'll try to clarify the title a bit more. I have implemented Google signin with firebase for my Android application. When I tried it on my iMac everything is working fine. I can select the account and login with that account.
The problem occurs when I try to build/run the Android application from another laptop. When I try to login I can still select an account, but upon selecting an account it does not proceed to login and the signin activity reappears. The logs don't show anything.
Here's how I login/logout, but I don't think this is the problem.
public class AuthController {
private AuthListener authListener;
static final int RC_SIGN_IN = 9001;
private FirebaseAuth mAuth;
private FirebaseAuth.AuthStateListener mAuthListener;
public AuthController(){
mAuth = FirebaseAuth.getInstance();
mAuthListener = new FirebaseAuth.AuthStateListener() {
@Override
public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) {
FirebaseUser user = firebaseAuth.getCurrentUser();
if (user != null) {
// User is signed in
Log.d(AUTHCONTROLLER_TAG, "onAuthStateChanged:signed_in:" + user.getUid());
} else {
// User is signed out
Log.d(AUTHCONTROLLER_TAG, "onAuthStateChanged:signed_out");
}
authListener.onUserAuthenticated(user);
}
};
}
public void startAuthStateListener() {
mAuth.addAuthStateListener(mAuthListener);
}
public void stopAuthStateListener() {
if (mAuthListener != null) {
mAuth.removeAuthStateListener(mAuthListener);
}
}
public void firebaseAuthWithGoogle(GoogleSignInAccount acct, Activity activity) {
Log.d(AUTHCONTROLLER_TAG, "firebaseAuthWithGoogle:" + acct.getId());
AuthCredential credential = GoogleAuthProvider.getCredential(acct.getIdToken(), null);
mAuth.signInWithCredential(credential)
.addOnCompleteListener(activity, new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
Log.d(AUTHCONTROLLER_TAG, "signInWithCredential:onComplete:" + task.isSuccessful());
// If sign in fails, display a message to the user. If sign in succeeds
// the auth state authListener will be notified and logic to handle the
// signed in user can be handled in the authListener.
if (!task.isSuccessful()) {
Log.w(AUTHCONTROLLER_TAG, "signInWithCredential", task.getException());
}
}
});
}
public void signOut() {
mAuth.signOut();
}
void setAuthListener(AuthListener authListener) {
this.authListener = authListener;
}
interface AuthListener {
void onUserAuthenticated(FirebaseUser user);
}
I'm guessing it has something to do with the configurations of the keys and/or google-services.json. But i'm not sure how to proceed. The json files are identical on both computers.
Any help would be appreciated.
This is occurring just because your debug SHA key is related to your PC in your firebase console, If you want to access or build from another then also you need to add SHA key for your new PC in firebase console otherwise you can add release SHA key directly and build apk as release and you can access it anywhere,
Steps to add multiple SHA key in Firebase console: