要解决Android Firebase身份验证无限重建活动的问题,可以按照以下步骤进行操作:
implementation 'com.google.firebase:firebase-auth:19.2.0'
import com.google.firebase.auth.FirebaseAuth;
import com.google.firebase.auth.FirebaseUser;
public class FirebaseAuthentication extends AppCompatActivity {
private FirebaseAuth mAuth;
private TextView txtStatus;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_firebase_authentication);
mAuth = FirebaseAuth.getInstance();
txtStatus = findViewById(R.id.txtStatus);
}
@Override
protected void onStart() {
super.onStart();
FirebaseUser currentUser = mAuth.getCurrentUser();
updateUI(currentUser);
}
public void signIn(View view) {
mAuth.signInWithEmailAndPassword("email@example.com", "password")
.addOnCompleteListener(this, new OnCompleteListener() {
@Override
public void onComplete(@NonNull Task task) {
if (task.isSuccessful()) {
FirebaseUser user = mAuth.getCurrentUser();
updateUI(user);
} else {
Toast.makeText(FirebaseAuthentication.this, "Authentication failed.",
Toast.LENGTH_SHORT).show();
updateUI(null);
}
}
});
}
private void updateUI(FirebaseUser user) {
if (user != null) {
txtStatus.setText("User is signed in.");
} else {
txtStatus.setText("User is signed out.");
}
}
}
Intent intent = new Intent(MainActivity.this, FirebaseAuthentication.class);
startActivity(intent);
这样,当用户点击“Sign In”按钮时,应用将尝试使用Firebase身份验证进行用户登录,并在文本视图中显示用户的登录状态。