728x90

https://console.firebase.google.com/

 

로그인 - Google 계정

하나의 계정으로 모든 Google 서비스를 Google 계정으로 로그인

accounts.google.com

파이어베이스에서 데이터베이스를 만든 후 규칙을 다음과같이 허용해준다.

 

{
  "rules": {
    ".read": "true",
    ".write": "true"
  }
}

 

 

그 후 필드가 kind / name인 zoo테이블을 만든다.

 

 

 

 

그리고 animal 클래스를 만들어준다

 

//테이블이라고 생각하고, 테이블에 들어갈 속성값을 넣기
//파이어베이스는 RDBMS와 다르기 때문에 테이블이라는 개념이 없음. 원래는 키값이라고 부름
public class animal {
    String name; //동물 이름
    String kind; //동물 종류

    public animal(){} //이건 기본적으로 쓰더라구요.


    //get, set 함수는 커스텀 리스트 뷰를 사용하시는 분들과.. 필요하신 분만 작성하시면 좋습니다.
    public String getname() {
        return name;
    }

    public void setname(String name) {
        this.name = name;
    }

    public String getkind() {
        return kind;
    }

    public void setkind(String kind) {
        this.kind = kind;
    }

    //값을 추가할때 쓰는 함수, MainActivity에서 addanimal함수에서 사용할 것임.
    public animal(String name, String kind){
        this.name = name;
        this.kind = kind;
    }
}

 

 

 


데이터베이스 저장

 

 

이제 메인엑티비티에서 데이터베이스를 연동해줌 //전역변수로정의

 

// 파이어베이스 데이터베이스 연동
private final FirebaseDatabase database = FirebaseDatabase.getInstance();

//DatabaseReference는 데이터베이스의 특정 위치로 연결하는 거라고 생각하면 된다.
//현재 연결은 데이터베이스에만 딱 연결해놓고
//키값(테이블 또는 속성)의 위치 까지는 들어가지는 않은 모습이다.
private final DatabaseReference databaseReference = database.getReference();

 

public void addanimal(String name, String kind) {
    Log.d("jinsoltest","애니멀함수 ");
    //여기에서 직접 변수를 만들어서 값을 직접 넣는것도 가능합니다.
    // ex) 갓 태어난 동물만 입력해서 int age=1; 등을 넣는 경우

    //animal.java에서 선언했던 함수.
    animal animal = new animal(name,kind);

    //push()는 값을 넣을때 상위 키값을 랜덤으로 설정해 주는 함수입니다.
    //채팅기능을 만들때 사용하면 좋습니다.
    databaseReference.child("zoo").push().setValue(animal);
    //Toast.makeText(context,"db전송 :"+edit1.getText().toString()+" , "+edit2.getText().toString(),Toast.LENGTH_SHORT).show();

}

 


데이터베이스 읽기

 


public void ReadAnimal(){
    FirebaseDatabase.getInstance().getReference().addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            for (DataSnapshot snapshot : dataSnapshot.getChildren()) {
                Log.d("jinsoltest", "ValueEventListener : " + snapshot.getValue());
            }
        }


        @Override
        public void onCancelled(@NonNull DatabaseError error) {

        }
    });

}

 

Log가 잘찍힌것을 확인할수있다.

728x90

+ Recent posts