728x90
※ spring - gradle 프로젝트
* 우선 파이어베이스에서 console을 하나 만듭니다.
* gradle 프로젝트이므로
build.gradle에 파이어베이스의 dependencies를 추가해 줍니다. (버전확인 <-링크 클릭해서 확인하세요)
implementation 'com.google.firebase:firebase-admin:6.8.1'
* Firebase Admin SDK 추가
콘솔에서 원하는 프로젝트 - 설정 -프로젝트 설정 - 서비스 계정 - 자바 - 새 비공개 키 생성
키 생성 클릭하면 json 파일 하나가 다운로드 됩니다.
다운받은 파일을 드래그&드랍으로 프로젝트의 resources 디렉토리 안에 넣어줍니다.
* 스프링 프로젝트의 application.properties에 다음의 문장을 입력합니다
firebase-realtime-database.database-url=파이어베이스 주소
파이어베이스 주소는 빨간색 밑줄로 표시되어 있는 것 입니다.
그리고 좌측의 버튼으로 복사가 가능합니다.
spring과 파이어베이스 realtime 데이터베이스를 연결하려고 했습니다.
결국 성공하지 못해서 코드를 남깁니다..ㅠ
Service/FirebaseInitialize.java
package DSC4.cafein.service;
import com.google.auth.oauth2.GoogleCredentials;
import com.google.firebase.FirebaseApp;
import com.google.firebase.FirebaseOptions;
import org.springframework.stereotype.Service;
import javax.annotation.PostConstruct;
import java.io.FileInputStream;
@Service
public class FirebaseInitialize {
@PostConstruct //has to be Run during the Start of
public void initialize() {
try {
FileInputStream serviceAccount =
new FileInputStream("./src/main/resources/serviceAccountKey.json");
FirebaseOptions options = new FirebaseOptions.Builder()
.setCredentials(GoogleCredentials.fromStream(serviceAccount))
.setDatabaseUrl("https://cafein-d8792.firebaseio.com")
.build();
FirebaseApp.initializeApp(options);
} catch (Exception e){
e.printStackTrace();
}
}
}
Service/FirebaseService.java
package DSC4.cafein.service;
import DSC4.cafein.domain.Member;
import com.google.firebase.database.*;
import org.springframework.stereotype.Service;
@Service
public class FirebaseService {
private FirebaseDatabase database;
private DatabaseReference databaseReference;
public String getUserDetails(Member member) {
database = FirebaseDatabase.getInstance();
databaseReference = database.getReference("member").child("spring1");
databaseReference.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
// Iterable<DataSnapshot> values = dataSnapshot.getValue(Member.class);
Member member;
member. = dataSnapshot.child("name").getValue();
// member = values.toString(Member.class);
// return member;
}
@Override
public void onCancelled(DatabaseError error) {
}
});
// ApiFuture<DataSnapshot> future = databaseReference.get();
//
// DataSnapshot snapshot = future.get();
// Member member = null;
//
// if(snapshot.exists()){
// member = snapshot.toObject(Member.class);
// return member;
// }
// else{
// return null;
// }
// mFirebaseDataBaseReference = FirebaseDatabase.getInstance().getReference();
// mFirebaseDataBaseReference.child("user").child("ID").setValue("test",);
}
}
반응형
'(web) 스프링' 카테고리의 다른 글
Web server failed to start. Port 8080 was already in use. (0) | 2020.11.09 |
---|---|
spring 빌드 & 실행 (0) | 2020.11.09 |
[스프링 입문] 섹션1. 프로젝트 환경설정 (0) | 2020.11.09 |