0

タイトルをもう少し明確にしようとします。私はAndroidアプリケーション用のfirebaseを使ってGoogleにサインインしました。私がiMacで試したところ、すべてうまくいっています。私はそのアカウントを選択し、そのアカウントでログインすることができます。Android Firebase Googleの認証は、1台のコンピュータからのみ実行すると動作します

問題は、別のラップトップからAndroidアプリケーションをビルドまたは実行しようとしたときに発生します。私がログインしようとすると、私はまだアカウントを選択することができますが、アカウントを選択するとログインには進まず、サインイン活動が再現します。ログには何も表示されません。

ここに私がログイン/ログアウトする方法はありますが、これは問題ではないと思います。

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); 
} 

キーやgoogle-services.jsonの設定と関係があります。しかし、私はどのように進むか分からない。 jsonファイルは両方のコンピュータで同じです。

ご協力いただければ幸いです。

+0

同じデバイスで実行しますか? – DreamCoder

答えて

1

これは、デバッグSHAキーがfirebaseコンソール内のPCに関連しているために発生します。別のマシンにアクセスしたりビルドしたりする場合は、新しいPCのSHAキーをfirebaseコンソールに追加する必要があります。リリースSHAキーを直接追加し、apkをリリースとしてビルドし、どこにでもアクセスできます。

関連する問題