본문 바로가기
Swfit/WidgetKit

Widget에 보여줄 정보 Firebase에서 불러오기

by GGShin 2024. 1. 23.

제가 작업하고 있는 앱은 WidgetKit과 Firebase Storage를 사용하고 있습니다.

Widget에서도 앱에서와 마찬가지로 DB에 저장되어 있는 데이터를 보여주어야 하는데, 어떻게 할 수 있는지 알아보도록 하겠습니다.

 

1. GoogleService-Info.plist 파일 타겟 멤버십에 Widget target포함시켜주기

처음에 가장 난감했던 건 Firebase에서 사용하는 GoogleService-Info.plist를 어떻게 처리하느냐 였습니다. Widget도 별도의 bundle identifier를 가지고 있으니 이걸 추가를 어떻게 해줘야 하는 건지? Widget이라고 따로 Firebase project를 만들 것 같지는 않은데 등등 여러 생각이 들었지만, 사실 해답은 매우 간단했습니다.

 

초반에 따로 설정을 해주지 않았다면 GoogleService-Info.plist의 타겟에는 앱 타겟만 설정되어 있을 겁니다. 여기에 WidgetExtension도 같이 추가해주면 이제 Widget에서도 동일한 firebase project를 사용할 수 있게 됩니다.

 

2. Widget에서 Firebase 초기화 해주기

Firebase를 사용하려면 앱 진입시점에 FirebaseApp.configure()를 호출해 주어야 합니다. Widget 진입점에서도 마찬가지로 호출해줍니다. 아래처럼 Initializer에서 호출해주었습니다.

 

@main
struct WeatherWidgetBundle: WidgetBundle {
    // Initialize Firebase
    init() {
        FirebaseApp.configure()
    }
}

 

이렇게 두 가지만 설정해 주면 Widget에도 Firebase Storage에서 받아 온 데이터를 보여줄 수 있게 됩니다. 

Auth와 같은 기능들도 사용할 수 있던데, 필요하다면 추후에 사용해보아야겠습니다.


참고자료

https://www.youtube.com/watch?v=3t67GWZJHSQ

 

반응형