앙큼한 개발기록

firebase android connect 파이어베이스 안드로이드 연결 본문

개발/android

firebase android connect 파이어베이스 안드로이드 연결

angkeum 2018. 1. 21. 16:32

안드로이드랑 파이어베이스랑 연결 하는 방법.


1. 파이어베이스 홈페이지에서 회원 가입 하고 새로운 파이어베이스 프로젝트를 만든다. 




2. 왼쪽의 메뉴에서 [Database] - 위에 파란색 헤더라인 [규칙] 에서 read : true , write : true 로 바꿔준다. (누구나 읽고 쓰기 가능 하도록 설정.)




3. [데이터] 에서 임의로 데이터를 집어 넣는다.

 데이터 집어 넣을때 [값] 입력 안해주면 데이터 안만들어 집니다. 

 하위 데이터를 만들고 싶으신 경우 일단 [name] or [이름] 에 값 입력하고 옆에 [+] 버튼 누르면 넘어가집니다. 

아무것도 안넣고 싶다고 null 막 넣으면 안만들어지니 참고하세요.





4.  안드로이드 프로젝트에 firebase 연결하기


안드로이드 스튜디오에서 프로젝트를 만듭니다. 


[Tools] - [FireBase] - [Realtime Database - Save and Retrieve data] - [Connect your app to Firebase] -  프로젝트를 선택 - [Add the Realtime DataBase to your app]

위의 과정을 끝내고 나면, 파이어베이스를 사용하기 위한 모든 환경설정이 자동으로 처리됩니다.(라이브러리 추가 등등...)



데이터 저장 / 불러오기 

public class MainActivity extends AppCompatActivity {

//데이터 베이스
FirebaseDatabase database;

//데이터베이스의 정보
DatabaseReference ref;

//정보 담을 객체
List<User> userList = new ArrayList<>();

//화면에 뿌려줄 뷰
ListView listView;

//데이터 넣어줄 어뎁터
ListAdapter adapter;


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

//파이어 베이스와 연결
database = FirebaseDatabase.getInstance();
Log.i("start", "start");

// 파이어 베이스에서 레퍼런스를 가져옴
ref = database.getReference("User");

// 파이어베이스 에서 데이터를 가져 옴
ref.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
// 부모가 User 인데 부모 그대로 가져오면 User 각각의 데이터 이니까 자식으로 가져와서 담아줌
for (DataSnapshot snapshot : dataSnapshot.getChildren()){

User user = snapshot.getValue(User.class);
user.User = snapshot.getKey();
Log.i("id", user.User);
Log.i("UserName", user.getName());
Log.i("UserAge", String.valueOf(user.getAge()));

userList.add(user);
}

//어뎁터한테 데이터 넣어줬다고 알려줌 (안하면 화면에 안나온다)
adapter.notifyDataSetChanged();

}

@Override
public void onCancelled(DatabaseError databaseError) {
Log.w("MainActivity", "loadPost:onCancelled", databaseError.toException());
}
});

// 4. 리스트뷰에 목록 세팅
listView = (ListView)findViewById(R.id.listView);
adapter = new ListAdapter(userList, this);
listView.setAdapter(adapter);


}
}


내가 만든 프로젝트 데이터 이름 그대로 데이터를 받을 클래스(저는 User라고 만듦)를 만들어서 데이터를 받습니다. 


레퍼런스로 가져 올때는 이름을 반드시 지정해줘야 가져 올 수 있습니다. 


데이터스냅샷은 레퍼런스에서 해당 객체를 가져온 하나의 json객체를 지칭합니다.



프로젝트 깃 

git android connect project :  https://github.com/wmsdsd/firebase-android-connect-test



Comments