前提
トラブルシューティング
Build.VERSION_CODES.Q が存在しないエラー
メモリー足りないエラー
Execution failed for task ':app:mergeExtDexDebug'.> A failure occurred while executing com.android.build.gradle.internal.tasks.Workers$ActionFacade> java.lang.OutOfMemoryError (no error message)
コメントアウトを解除した
org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
64K問題?
Cannot fit requested classes in a single dex file (# methods: 154819 > 65536 ; # fields: 126457 > 65536)
multiDexEnabled trueを追加
facebook sdkのエラー
The SDK has not been initialized, make sure to call FacebookSdk.sdkInitialize() first.
確かにまだ設定してないからなー。
FirebaseのAuthentication使ってるからそこら変の設定がもろもろ足りない。
React Native Firebase
Twitterの設定
Appleでログイン
iOS開発時は1.0.0。Android対応は2.0.0からので、バージョンを最新にする(2.1.0)
const response = await appleAuthAndroid.signIn();
ドキュメント通り実装しても、responseで取得できるのはid_tokenだけ。
{nonce: "XXXXXXXXX", state: "XXXXXXXXXXXX", id_token: "XXXXXXXXX", code: "XXXXXXXXXXX"}
id_tokenはJWTなので、decodeすると、(便利なサイト https://jwt.io/)
{
"iss": "https://appleid.apple.com",
"aud": "xxxxxxxxxxxxxxxxxxxxxx",
"exp": 1607694557,
"iat": 1607608157,
"sub": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"nonce": "xxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"c_hash": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"email": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"email_verified": "true",
"is_private_email": "true",
"auth_time": 1607608157,
"nonce_supported": true
}
こんな感じ
で?
Firebaseの本家の(ReactNativeじゃないほう)のAndroidのドキュメントをみてみる
https://firebase.google.com/docs/auth/android/apple
始めの方はSDK使えば簡単にできるようなことが書いてある。
「高度: 手動によるログインフローの処理」ここが参考になるかも
https://firebase.google.com/docs/auth/android/apple#advanced_handle_the_sign-in_flow_manually
AuthCredential credential = OAuthProvider.newCredentialBuilder("apple.com")
.setIdTokenWithRawNonce(appleIdToken, rawUnhashedNonce)
.build();
mAuth.signInWithCredential(credential)
appleIdTokenとか書いてあるので、それ渡せば良い? appleIdTokenはAppAuthから取得する?んー。これも違うような。
Web版をみてみる。
https://firebase.google.com/docs/auth/web/apple
続きはまた明日・・・