코딩마을방범대
[FCM] Java에서 Firebase 실시간 데이터베이스 활용하기 본문
728x90
이전 포스트에서 Firbase SDK를 세팅할 때 DatabaseURL을 설정했었다.
Firebase Console에서 Realtime Database 를 생성하면 아래처럼 링크가 설정된다!
해당 링크를 setDatabaseUrl 메소드에 넣어주면된다.
세팅 후 사용방법은 아래를 참고하면 된다.
데이터 저장하기
아래의 코드처럼 데이터를 저장했다고 가정하면,
@PostMapping("/fcm/data")
public void data(@RequestBody UserDTO user){
final FirebaseDatabase database = FirebaseDatabase.getInstance();
DatabaseReference ref = database.getReference("test/" + user.getIdx);
ref.setValueAsync(user);
}
- conf에 설정된 Firebase Database 링크대로 데이터베이스를 가져와 database라는 변수에 저장
- 해당 데이터 베이스의 test 라는 키의 value에 user Idx 키를 가진 value에 user 오브젝트를 저장
Firebase Console의 데이터베이스를 보면 아래와 같이 저장된 것을 볼 수 있다!
이를 통해 Reference에 들어가는 값은 key인 것을 알 수 있다.
데이터 출력하기
Reference에 key값을 순서대로 넣어준 후 출력을 시도해보았다.
@GetMapping("/fcm/data/{idx}")
public void data(@PathVariable("idx") int idx){
final FirebaseDatabase database = FirebaseDatabase.getInstance();
DatabaseReference ref = database.getReference("test/" + idx);
ref.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
System.out.println(dataSnapshot);
System.out.println("onDataChange():: "+dataSnapshot.getValue());
}
@Override
public void onCancelled(DatabaseError databaseError) {
System.out.println("The read failed: " + databaseError.getCode());
}
});
}
Key 값에 user Idx 가 확인되었고, Value에 Map 형태의 value가 잘 들어간 것을 확인할 수 있었다!
만약 Reference에 아무런 path값도 주지 않는다면 메인 경로에서 탐색하게 된다.
database.getReference().addValueEventListener(new ValueEventListener() {
....
아래와 같이 Key값이 null인 Map의 Value에 test라는 key값을 가진 Map 데이터가 들어가있는 것으로 출력된다.
Firebase 데이터베이스를 통해 FCM 토큰을 관리할 수 있지 않을까도 생각해볼 수 있다.
참고사이트
728x90
'💡 백엔드 > FCM ( Firebase )' 카테고리의 다른 글
[FCM] FCM 토큰의 관리 방법 (0) | 2023.07.07 |
---|---|
[FCM] 푸시 메시지를 보내는 방법 2가지 (0) | 2023.07.06 |
[FCM] FCM 웹 푸시 메시지 보내기 (0) | 2023.07.04 |
[FCM] FCM이란? (0) | 2023.06.15 |