본문 바로가기
Android 기법/# Study

[Android/안드로이드]간단하게 FireBase의 RealTime DataBase 사용하기[로그인,회원가입][GitHub]

by 퍼즐잎 2017. 1. 25.



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을 참조해주시기 바랍니다.







댓글