2016-10-10 12 views
0

私のアプリでは通常の認証コードを持っていますが、コードはエミュレータで正常に動作します。デバイス上でテストされても、起動しません。以下はFacebookのログイン用のスニペットです。Twitterやメール/パスのログインにも同じです。実際のiPhoneデバイスでFirebaseコードが実行されず、エミュレータでのみ

if let fbLoginResult : FBSDKLoginManagerLoginResult = result { 
      if (fbLoginResult.grantedPermissions.contains("email")){ 
       print("Facebook Token received!") 
       FBSDKAccessToken.setCurrent(fbLoginResult.token) 
       let token = FBSDKAccessToken.current().tokenString! 
       let credential = FIRFacebookAuthProvider.credential(withAccessToken: token) 

       print("Token : \(token)") 

       FIRAuth.auth()?.currentUser?.link(with: credential, completion: { (currentUser, linkingError) in 
        if linkingError != nil { 
         print("Linking error: \(linkingError?.localizedDescription)") 
         FIRAuth.auth()?.signIn(with: credential, completion: { (user, error) in 
          if error == nil { 
           self.loginSucceeded(user: user!) 
          }else{ 
           print("Error : \(error?.localizedDescription)") 
          } 
         }) 


        }else{ 
         self.loginSucceeded(user: currentUser!) 
        } 
       }) 

      } 
     } 

ビルド設定のビットコードをNOに切り替えることを試みました。まだ働けません。

これはどうすればよいですか?とても有難い!

答えて

0

「開始していない」とは、ここの部分が開始しないのですか?どのコード行が実行されないのかを判断するためにデバッガを設定しましたか?ちょうどあなたが提供してきましたスニペットを見ることで、私の推測では次のとおりです。

FIRAuth.auth()?.currentUser?.link(with: credential, completion: { (currentUser, linkingError) in 

currentUsernilだろうので、この行はおそらく、以前に認証されていないデバイス上で失敗します、私は信じています。私はこの変数がnon-nilであることを確認します。なぜなら、これがこの問題を引き起こす可能性が高いからです。

+0

はい、正しいです。その行は実行されません。これを修正するにはどうすればいいですか?いくつかのデバイスでは実際には動作しません。エミュレータでのみ動作します。残念ながら、まだxcodeで新しい。ありがとう@BHendricks –

+0

https://firebase.google.com/docs/auth/ios/password-auth#create_a_password-based_accountはあなたを助けるべきです - あなたがそれらを認証する前に 'Firebase'ユーザ用のアカウントを作成する必要があります。 – BHendricks

+0

Im abitが失われ、しばらくの間文書を閲覧していましたが、問題は、私がサインインしているときにユーザーのアカウントをリンクしようとしました。無し。あなたはもっと詳しく説明できますか?おかげさまで –

関連する問題