2020年5月28日 星期四
[ Android Stubio ] 連線Firebase之Authentication 註冊登入帳號密碼與換頁傳送字串
一、系統給予的教學如下:
Ⅰ、Connect your app to Firebase:連線Firebase
Ⅱ、Add Firebase Authentication to your app:安裝Firebase Authentication套件
Ⅲ、Check current auth state
資料型別:
private FirebaseAuth mAuth;
放入 onCreate() 以內:
mAuth = FirebaseAuth.getInstance();
初始化您的活動時,請檢查用戶當前是否已登錄:
@Override
public void onStart() {
super.onStart();
// Check if user is signed in (non-null) and update UI accordingly.
FirebaseUser currentUser = mAuth.getCurrentUser();
updateUI(currentUser);
}
Ⅳ、Sign up new users:註冊新用戶
mAuth.createUserWithEmailAndPassword(email, password)
.addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if (task.isSuccessful()) {
// 登錄成功,使用登錄用戶的信息更新用戶界面
Log.d(TAG, "createUserWithEmail:success");
FirebaseUser user = mAuth.getCurrentUser();
updateUI(user);
} else {
// 如果登錄失敗,則向用戶顯示一條消息。
Log.w(TAG, "createUserWithEmail:failure", task.getException());
Toast.makeText(EmailPasswordActivity.this, "Authentication failed.",
Toast.LENGTH_SHORT).show();
updateUI(null);
}
// ...
}
});
Ⅴ、Sign in exisiting users:登錄現有用戶
mAuth.signInWithEmailAndPassword(email, password)
.addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if (task.isSuccessful()) {
// 登錄成功,使用登錄用戶的信息更新用戶界面
Log.d(TAG, "signInWithEmail:success");
FirebaseUser user = mAuth.getCurrentUser();
updateUI(user);
} else {
// 如果登錄失敗,則向用戶顯示一條消息。
Log.w(TAG, "signInWithEmail:failure", task.getException());
Toast.makeText(EmailPasswordActivity.this, "Authentication failed.",
Toast.LENGTH_SHORT).show();
updateUI(null);
}
// ...
}
});
Ⅵ、Access user information:訪問用戶信息
FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
if (user != null) {
// 姓名,電子郵件地址和個人資料照片網址
String name = user.getDisplayName();
String email = user.getEmail();
Uri photoUrl = user.getPhotoUrl();
// 檢查用戶的電子郵件是否已驗證
boolean emailVerified = user.isEmailVerified();
//用戶的ID,對於Firebase項目而言是唯一的。 請勿使用此值來
//如果您有後端服務器,請與您的後端服務器進行身份驗證。 採用
// FirebaseUser.getIdToken()代替:Firebase用戶。 獲取ID令牌代替。
Ⅶ、Optional: Configure ProGuard 可選:配置ProGuard
-keepattributes Signature 不混淆Annotation
-keepattributes *Annotation*
二、訊息說明如下:
Ⅰ、task.getException()錯誤來源與訊息如下:
使用task.getException().getMessage()為只出現錯誤訊息。
1. com.google.firebase.auth.FirebaseAuthWeakPasswordException: The given password is invalid. [ Password should be at least 6 characters ]
以上為指定的密碼無效。 [密碼至少應為6個字符]
2. com.google.firebase.auth.FirebaseAuthInvalidCredentialsException: The email address is badly formatted.
以上為電子郵件地址格式錯誤。
3. com.google.firebase.auth.FirebaseAuthInvalidCredentialsException: The password is invalid or the user does not have a password
以上為密碼無效或用戶沒有密碼。
4. com.google.firebase.auth.FirebaseAuthInvalidUserException: There is no user record corresponding to this identifier. The user may have been deleted.
以上為沒有與此標識符對應的用戶記錄。 用戶可能已被刪除。
5. com.google.firebase.auth.FirebaseAuthUserCollisionException: The email address is already in use by another account.
以上為該電子郵件地址已被另一個帳戶使用。
Ⅱ、使用 ((FirebaseAuthException)task.getException()).getErrorCode()會出現訊息如下:
1. ERROR_WEAK_PASSWORD :密碼錯誤!!!
2. ERROR_INVALID_EMAIL :錯誤的無效電子郵件
3. ERROR_WRONG_PASSWORD :錯誤的密碼
4. ERROR_USER_NOT_FOUND :錯誤未找到用戶
5. ERROR_EMAIL_ALREADY_IN_USE :錯誤電子郵件已在使用中
三、影片教學:
訂閱:
張貼留言 (Atom)
沒有留言:
張貼留言
影片的問題請留在影片的留言區裡。
部落格不會另外通知給我,所以很難發現你有留言。