お世話になります。
###前提
iOSアプリをswiftで作っております。SNS(facebook, twitter, google)での個別のログインは出来るようになりました。
(こちらなど、firebaseの公式ドキュメントを参照しました)
同じくこちらの公式ドキュメントで、複数のSNSログインを相互リンクすることをしたいと考えております。
一応、公式ドキュメント通りに行うことで、例えばfacebookとgoogleのログインのリンクを行うことはできました。
###問題点
上記のリンクは”手動”で行っております。つまり、すでにgoogleアカウントでログイン認証がfirebaseに渡されているユーザーに対して、以下のコードを実行することで、facebookログインとリンクしました。
//FBトークンをクレデンシャルに入れる let credential = FIRFacebookAuthProvider.credential(withAccessToken: (result?.token.tokenString)!) //現在のユーザー( googleログインはすでにfirebaseに認証が渡されている)を上記のfacebook認証とリンクさせる FIRAuth.auth()?.currentUser?.link(with: credential){(user,error) in if (error != nil){ print("facebookに既存認証をリンクするところでエラー!error:\(error)") } }
ただしこれでは明らかに不便で、実際にはユーザーは、facebook/twitter/googleのどれに最初にログインしてくれるかわからないので、すでにこれら3つの中でfirebaseにログイン認証を渡しているかの判断分岐をいれる必要があると思っておりますが、その方法がわかりません。
おそらく、かなり基本的なことで、firebase公式にも書いてないのだと思いますが。。
なお、上記例で、すでにgoogleログインがすでに現在時点で行われているかはもちろんわかるのですが、「過去にgoogleログインされて、よってfirebaseに認証情報を渡されたことがあるものの、今現在は当該googleログインはログアウトされているユーザーがfacebookログインしようとするとき」の判定したい、という趣旨です。
わかりにくくて恐縮ですが、先人の方のお知恵を拝借できればと存じます。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。