Firestoreに読み書きできない問題が発生
前提
✅ GoogleService-Info.plist
はプロジェクト直下のディレクトリに配置済み
✅ AppDelegate
はFirebaseの最初の案内に従って設定済み
class AppDelegate: NSObject, UIApplicationDelegate {
func application(_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil) -> Bool {
let providerFactory = AppCheckDebugProviderFactory()
AppCheck.setAppCheckProviderFactory(providerFactory)
FirebaseApp.configure()
return true
}
}
@main
struct DeviceFinderIOSApp: App {
@UIApplicationDelegateAdaptor(AppDelegate.self) var delegate
var body: some Scene {
WindowGroup {
EntrancePage()
}
}
}
エラーで詰まった部分
[Firebase/Firestore][I-FST000001] AppCheck failed: 'The operation couldn’t be completed. The server responded with an error:
- URL: https://firebaseappcheck.googleapis.com/v1beta/projects/<my-project>/apps/1:<my-app-id>:ios:<id>:exchangeDeviceCheckToken
- HTTP status code: 403
- Response body: {
"error": {
"code": 403,
"message": "App attestation failed.",
"status": "PERMISSION_DENIED"
}
}
解決方法
Firebase公式のUse the debug provider in a simulator
1 - 4にてtokenを登録する必要がある。debugビルドの場合は以上のトークンを設定しないと エラーで詰まった部分
で表示されるような 403 - Unauthorized
に遭遇する