- I’m trying to build an app with login/register capabilities through Firebase. I’m working on it with a partner (he’s on Linux, I’m on Mac), and he’s able to get the authentication working but for some reason I am not. We have all the same code, SDK tools checked in the SDK manager, running the same version of everything.
- Here’s the gradle file:
compile 'com.android.support:appcompat-v7:25.3.0' compile 'com.android.support.constraint:constraint-layout:1.0.2' compile 'com.google.firebase:firebase-auth:10.2.1' compile 'com.android.support:design:25.3.0' testCompile 'junit:junit:4.12'
- And the code:
public class RegisterActivity extends AppCompatActivity {
private FirebaseAuth mAuth;
private FirebaseAuth.AuthStateListener mAuthListener;
private EditText mUsernameField;
private EditText mPasswordField;
private EditText mConfirmPasswordField;
private Button mRegisterButton;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_register);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
mUsernameField = (EditText) findViewById(R.id.enterUsername);
mPasswordField = (EditText) findViewById(R.id.enterPassword);
mConfirmPasswordField = (EditText) findViewById(R.id.confirmPassword);
mRegisterButton = (Button) findViewById(R.id.confirmRegistration);
mRegisterButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
createAccount(mUsernameField.getText().toString(), mPasswordField.getText().toString());
}
});
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("account", "onAuthStateChanged:signed_in:" + user.getUid());
} else {
// User is signed out
Log.d("account", "onAuthStateChanged:signed_out");
}
// ...
}
};
}
@Override
public void onStart() {
super.onStart();
mAuth.addAuthStateListener(mAuthListener);
}
@Override
public void onStop() {
super.onStop();
if (mAuthListener != null) {
mAuth.removeAuthStateListener(mAuthListener);
}
}
private void createAccount(String email, String password) {
Log.d("account", "createAccount:" + email);
if (!validateForm()) {
return;
}
// [START create_user_with_email]
mAuth.createUserWithEmailAndPassword(email, password)
.addOnCompleteListener(this, new OnCompleteListener() {
@Override
public void onComplete(@NonNull Task task) {
Log.d("account", "createUserWithEmail:onComplete:" + task.isSuccessful());
// If sign in fails, display a message to the user. If sign in succeeds
// the auth state listener will be notified and logic to handle the
// signed in user can be handled in the listener.
if (!task.isSuccessful()) {
Toast.makeText(RegisterActivity.this, R.string.register_failed,
Toast.LENGTH_SHORT).show();
}
else {
Intent intent = new Intent(RegisterActivity.this, MainActivity.class);
RegisterActivity.this.startActivity(intent);
finish();
}
}
});
// [END create_user_with_email]
}
private boolean validateForm() {
boolean valid = true;
String email = mUsernameField.getText().toString();
if (TextUtils.isEmpty(email)) {
mUsernameField.setError("Required.");
valid = false;
} else {
mUsernameField.setError(null);
}
String password = mPasswordField.getText().toString();
if (TextUtils.isEmpty(password)) {
mPasswordField.setError("Required.");
valid = false;
} else {
mPasswordField.setError(null);
}
String confirmPassword = mConfirmPasswordField.getText().toString();
if (TextUtils.isEmpty(confirmPassword)) {
mConfirmPasswordField.setError("Required.");
valid = false;
} else {
mConfirmPasswordField.setError(null);
}
if(!confirmPassword.equals(password)) {
mConfirmPasswordField.setError("Passwords must be the same.");
valid = false;
}
return valid;
}
}
W/DynamiteModule: Local module descriptor class for com.google.firebase.auth not found.
W/GooglePlayServicesUtil: Google Play Store is missing.
I/art: Background partial concurrent mark sweep GC freed 5866(313KB) AllocSpace objects, 1(14KB) LOS objects, 39% free, 2MB/4MB, paused 5.176ms total 27.761ms
D/account: createUserWithEmail:onComplete:false
- Pretty much everything was taken textbook from the Firebase website. Please help, we’ve been stuck on this for hours, and none of the other similar questions have helped.