タイトルをもう少し明確にしようとします。私は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ファイルは両方のコンピュータで同じです。
ご協力いただければ幸いです。
同じデバイスで実行しますか? – DreamCoder