- 我試圖通過Firebase構建具有登錄/註冊功能的應用程序。我正在和一個合作伙伴(他在Linux上,我在Mac上)一起工作,他能夠獲得身份驗證的工作,但由於某種原因,我不是。我們在SDK管理器中檢查了所有相同的代碼,SDK工具,運行相同版本的所有內容。
這裏的gradle這個文件:Android驗證碼firebase錯誤:找不到com.google.firebase.auth的本地模塊描述符類
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'
,代碼:
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
- 差不多一切都被教科書從火力地堡網站。請幫助,我們一直堅持這個小時,並沒有其他類似的問題有幫助。
選項1是有益的。 –