제가 작업하고 있는 앱은 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
'Swfit > WidgetKit' 카테고리의 다른 글
Configurable Widget Keyboard type 설정하기 (iOS 17 & above) (0) | 2024.02.04 |
---|---|
사용자 설정이 가능한 Widget 설정 방법 (iOS 17 under) (1) | 2024.01.24 |
WidgetKit에서 CLLocationManager & WeatherKit 사용하기 (2) | 2024.01.23 |
Widget bundle id 설정해주기 (0) | 2023.12.15 |