【发布时间】:2026-02-10 09:40:01
【问题描述】:
我会尽量澄清标题。我已经为我的 Android 应用程序使用 Firebase 实现了 Google 登录。当我在 iMac 上尝试时,一切正常。我可以选择帐户并使用该帐户登录。
当我尝试从另一台笔记本电脑构建/运行 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 文件相同。
任何帮助将不胜感激。
【问题讨论】:
-
你在同一台设备上运行?
标签: android json firebase firebase-authentication google-play-services