1. 참조하는 위치가 더이상 분열되지 않고 끝자리라면
username까지 참조해서 "러아니푸"값 하나만을 직접 받아오기
구동시킬 자바.class
databaseReference.child("User").child(uid).child("username").addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
String value = dataSnapshot.getValue(String.class);
uname= value;
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
//Log.e("MainActivity", String.valueOf(databaseError.toException())); // 에러문 출력
}
});
2. 참조되는 부분 아래로 값이 여러개 있는 경우
Together_group_list 아래의 그룹명인 한울을 참조하고있고, 한울 속에있는 속성 여러개를 받아오고 싶을때
구동시킬 자바.class
databaseReference.child("Together_group_list").child(Gname).addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
Together_group_list group = dataSnapshot.getValue(Together_group_list.class);
//각각의 값 받아오기 get어쩌구 함수들은 Together_group_list.class에서 지정한것
gintro = group.getGintro();
goaltime = group.getGoaltime();
gdate = group.getGoalday();
//텍스트뷰에 받아온 문자열 대입하기
goaltime_tv.setText(goaltime);
gintro_tv.setText(gintro);
gdate_tv.setText(gdate);
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
//Log.e("MainActivity", String.valueOf(databaseError.toException())); // 에러문 출력
}
});
Together_group_list.class
package com.example.together.Group;
public class Together_group_list {
//변수 선언
private String Gname;
private String Gintro;
private String Goaltime;
private String Goalday;
private String master;
public Together_group_list(){}
//여기서부터 get,set 함수를 사용하는데 이부분을 통해 값을 가져옴
public String getGname() {
return Gname;
}
public void setGname(String Gname) {
this.Gname = Gname;
}
public String getGintro() {
return Gintro;
}
public void setGintro(String Gintro) {
this.Gintro = Gintro;
}
public String getGoaltime() {
return Goaltime;
}
public void setGoaltime(String Goaltime) {
this.Goaltime = Goaltime;
}
public String getGoalday() {
return Goalday;
}
public void setGoalday(String Goalday) {
this.Goalday = Goalday;
}
public String getmaster() {
return master;
}
public void setmaster(String userId) {
this.master = master;
}
//이거는 그룹을 생성할때 사용하는 부분
public Together_group_list(String Gname, String Gintro, int GCP, int GAP, String Goaltime, String Goalday, String master) {
this.Gname = Gname;
this.Gintro = Gintro;
this.GCP = GCP;
this.GAP = GAP;
this.Goaltime = Goaltime;
this.Goalday = Goalday;
this.master = master;
}
}
3. 정수형을 받아오고 싶은 경우
구동시킬 자바.class
databaseReference.child("Together_group_list").child(Gname).child("gap").addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot snapshot) {
int value = (int)snapshot.getValue(Integer.class);//저장된 값을 숫자로 받아오고
value +=1;//숫자를 1 증가시켜서
databaseReference.child("Together_group_list").child(Gname).child("gap").setValue(value);//저장
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
//Log.e("MainActivity", String.valueOf(databaseError.toException()));
}
});
저장된 값을 받아와서 1증가시키는 코드입니다.
파이어베이스는 json형태로 저장되기 때문에 int로 값을 저장했어도 받아올때는 int로 형변환을 해줘야합니다.