FireBase의 ReadTime DataBase를 이용하여
간단하게 User 데이터를 등록하고
로그인하는 방법입니다.
보안적인 측면에서는
많이 미흡하지만
이렇게 데이터베이스를 사용한다
정도로만 참고하면 될 것 같습니다.
안드로이드 스튜디오의 Tools에 가면
FireBase 메뉴가 있습니다.
선택하면 우측에 다음과 같이 나타나고
Realtime Database를 선택하고 FireBase와 연결합니다.
FireBase에서 새로운 프로젝트를 만들거나
기존에 존재하는 프로젝트를 선택해서 이용할수 있습니다.
이제 FireBase를 사용할 준비를 끝마쳤습니다.
샘플 앱은 다음과 같이 동작합니다.
RealTime DataBase 현황
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 | private DatabaseReference databaseReference; databaseReference = FirebaseDatabase.getInstance().getReference("users"); //users 라는 키를 가진 값들을 참조한다. ... //로그인 영역 databaseReference.addListenerForSingleValueEvent(new ValueEventListener() { @Override public void onDataChange(DataSnapshot dataSnapshot) { Iterator<DataSnapshot> child = dataSnapshot.getChildren().iterator(); //users의 모든 자식들의 key값과 value 값들을 iterator로 참조합니다. while(child.hasNext()) { //찾고자 하는 ID값은 key로 존재하는 값 if(child.next().getKey().equals(checkId.getText().toString())) { Toast.makeText(getApplicationContext(),"로그인!",Toast.LENGTH_LONG).show(); return; } } Toast.makeText(getApplicationContext(),"존재하지 않는 아이디입니다.",Toast.LENGTH_LONG).show(); } @Override public void onCancelled(DatabaseError databaseError) { } }); ... //아이디 등록 영역 private ValueEventListener checkRegister = new ValueEventListener() { @Override public void onDataChange(DataSnapshot dataSnapshot) { Iterator<DataSnapshot> child = dataSnapshot.getChildren().iterator(); while (child.hasNext()) {//마찬가지로 중복 유무 확인 if (editEmail.getText().toString().equals(child.next().getKey())) { Toast.makeText(getApplicationContext(), "존재하는 아이디 입니다.", Toast.LENGTH_LONG).show(); databaseReference.removeEventListener(this); return; } } makeNewId(); } @Override public void onCancelled(DatabaseError databaseError) { } }; ... void makeNewId() { Date date = new Date(System.currentTimeMillis()); //날짜 databaseReference.child(editId.getText().toString()).child("가입일").setValue(date.toString()); //users를 가리키는 기본 참조에서 시작 -> child(Id를 key로 가지는 자식) ->child("가입일 이라는 key를 갖는 자식")의 value를 날짜로 저장 Toast.makeText(getApplicationContext(), "Success", Toast.LENGTH_SHORT).show(); } ... | cs |
자세한 사항은 아래 GitHub을 참조해주시기 바랍니다.
'Android 기법 > # Study' 카테고리의 다른 글
[Android/안드로이드]Jsoup을 이용하여 WebView 로그인 쿠키 이용하기[Login/Cookie] (1) | 2017.02.03 |
---|---|
[Android/안드로이드]PopupWindow 쉽게 사용하기[GitHub] (1) | 2017.02.02 |
[Android/안드로이드]Target View/타겟 이펙트[GitHub예제][MaterialTapTargetPrompt] (0) | 2017.01.22 |
[Android/안드로이드]ViewPager를 쉽게 사용하기[GitHub 예제/Example] (0) | 2017.01.21 |
[Android]Handler와 Splash (0) | 2016.11.06 |
댓글