-
[IOS] Firebase Remote Config 를 알아보자 (3)IOS 2021. 12. 1. 16:26
이전 프로젝트에 이어서 실제 firebase 콘솔에서 팝업을 제어하도록 해보겠습니다
viewcontroller 로 넘어와 사진과 같이 설정 해줍니다 .
- import FirebaseRemoteConfig
- var remoteConfig : RemoteConfig? //remoteConfig 객체를 추가합니다
- remoteConfig = RemoteConfig.remoteConfig() //remoteConfig 선언을 해줍니다 .
- let setting = RemoteConfigSettings() //셋팅을 선언합니다.
- setting.minimumFetchInterval = 0 //새로운 값을 되도록 자주 불러오도록 인터벌을 줍니다.
- remoteConfig?.configSettings = setting //remoteConfig 셋팅값을 넣어줍니다
이제 각 키의 기본값을 설정해줍니다.
Comand+N 을 눌러 Property List 파일을 생성 해줍니다.
생성된 Property 파일에 저는 이렇게 설정했습니다 isHidden은 공지를 띄울지 말지를 컨트롤 할수있게 넣어놨습니다 Bool 으로 설정해 true / false로 정해줬습니다. Value에는 true를 입력해도 1로 나오게 됩니다 즉 1 = true 2 = false 로 볼수있습니다 .
아래 test1 ,test2 는 전 포스팅에서 noticeviewcontroller에 설정해둔 Label을 통일성있게 넣어 줬습니다. 기본값을 설정하는거기에
각자 알아보기 편하게 설정해두시면 됩니다.
다시 프로젝트로 넘어와서 firebase가 인식할수있도록 setDefaults 를 해줍니다
- remoteConfig?.setDefaults(fromPlist: "TestDefaultValue") //방금 생성한 Property File의 이름을 넣어줍니다.
이제 firebase 콘솔로 넘어가겠습니다.
firebase 왼쪽 리스트에 하단으로 내려가다 보면 '참여' 탭이 있습니다 여기서 'Remote Config'를 눌러줍니다
'구성 만들기' 를 눌러줍니다.
프로젝트 Property List에 설정해둔것과 같이 key-value로 설정 되어있습니다.
저는 3가지 isHidden , test1 ,test2 총3개를 만들어놨으니 똑같이 등록해주겠습니다.
설정을 완료 하였다면 변경사항 게시를 눌러준뒤 다시 프로젝트로 넘어오겠습니다.
아래와 같이 함수를 만들어 주겠습니다.
func getNotice(){
guard let remoteConfig = remoteConfig else {return} //옵셔널 처리
remoteConfig.fetch {[weak self] status, _ in //remoteconfig fetching 을 해준다.
if status == .success {
remoteConfig.activate(completion: nil)
}else {
print("error")
}
guard let self = self else {return}
if !self.isNoticeHidden(remoteConfig){ //isHidden 이 아니라면 숨기는게 아니라면
let noticeVC = NoticeViewController(nibName: "NoticeViewController", bundle: nil)
noticeVC.modalPresentationStyle = .custom
noticeVC.modalTransitionStyle = .crossDissolve //notice view의 속성을 정해준다
/*아래의 replacingOccurrences(of: "\\n", with: "\n") 이부분은 firebase 콘솔에서 줄바꿈을 써서 입력하면 \\n 찍혀 인식하지 못하기에 설정 해주는것입니다.
*/
let test1 = (remoteConfig["test1"].stringValue ?? "").replacingOccurrences(of: "\\n", with: "\n")
let test2 = (remoteConfig["test2"].stringValue ?? "").replacingOccurrences(of: "\\n", with: "\n")
noticeVC.content = (test1 : test1,test2 : test2) //설정해둔 content에 값을 넣어줍니다.
self.present(noticeVC, animated: true, completion: nil)
}
}
}
//공지사항을 보일지 말지 설정
func isNoticeHidden(_ remoteConfig: RemoteConfig) -> Bool{
return remoteConfig["isHidden"].boolValue //만들어논 isHidden 이라는 값을 가져오게 됩니다.
}
이제 getNotice 함수를 viewdidload에 넣고 빌드 해보면 아무것도 나오지 않을겁니다 firebase에서 값을 설정해줄겁니다.
isHidden의 값을 false로 바꾸고 test1 ,test2 의 대한 내용도 변경해보도록 하겠습니다.
적용 완료를 하고 빌드를 해보도록 하겠습니다.
방금 변경한것이 그대로 반영되었습니다. 이렇게 원하는 값을 앱 심사 없이 바꿀수 있는 firebase의 Remote Config 를 알아보았습니다.
추가로 새로추가 탭으로 조건부 값으로 기기 언어가 영어로 설정되었을때 영어로 공지내용이 나오게 한다던지 능동적으로 설정할수도 있습니다.
이상으로 Firebase Remote Config 포스팅을 마치겠습니다.
'IOS' 카테고리의 다른 글
[IOS] Firebase Remote Config 를 알아보자 (2) (0) 2021.12.01 [IOS] Firebase A_B Test를 알아보자 (1) (0) 2021.12.01 [IOS] Firebase Remote Config 를 알아보자 (1) (0) 2021.12.01