公式ドキュメントのやり方は以下のようになっています。
ですが、macOSでは getCredentialWith()
が呼べません。
API_UNAVAILABLE(macos, tvos, watchos);
となっています。なので別のアプローチが必要です。
FIRTwitterAuthProviderは
+ (FIRAuthCredential *)credentialWithToken:(NSString *)token secret:(NSString *)secret { return [[FIRTwitterAuthCredential alloc] initWithToken:token secret:secret]; }
のように accessToken と accessTokenSecret で生成できます。なので、
- デバイスからTwitter認証して accessToken と accessTokenSecret を取得する
- accessToken と accessTokenSecret から FIRAuthCredential を作成
Auth.auth().signIn(with: credential)
でFirebaseにサインイン
とするとTwitterログインできます。
let credential = TwitterAuthProvider.credential(withToken: result.oauth_token, secret: result.oauth_token_secret) authDataResult = try await withUnsafeThrowingContinuation({ a in Auth.auth().signIn(with: credential) { result, error in if let error = error { a.resume(throwing: error) } else { a.resume(returning: result) } } })
こんなかんじ。