2016-04-15 5 views
2

基本的なSDK手順を使用してfacebookでのログインを正常に認証できますが、Firebaseで認証しようとすると混乱します。私は、ドキュメントを読んでとコピーしたコードを貼り付けたが、私はまだこの警告は何を意味し、私はそれをどのように修正すればよい)facebookLogin.logInWithReadPermissions with Firebaseの問題

'logInWithReadPermissions(_:handler:)' is deprecated: use logInWithReadPermissions:fromViewController:handler: instead facebookLogin.logInWithReadPermissions(["email"], handler: instead. 

1を読み込み、警告を取得していますか? 2)電子メールとパスワードサインインでは、作成された登録ユーザが表示されますが、ユーザがFirebase DBでFacebook認証で登録されているかどうか知る方法は?

ありがとうございました!

import UIKit 
import Firebase 
import FBSDKCoreKit 
import FBSDKLoginKit 


class ViewController: UIViewController, FBSDKLoginButtonDelegate { 

    let loginButton: FBSDKLoginButton = { 
     let button = FBSDKLoginButton() 
     button.readPermissions = ["email"] 
     return button 
    }() 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     view.addSubview(loginButton) 
     loginButton.center = view.center 
     loginButton.delegate = self 

     let ref = Firebase(url: "https://my-app.firebaseio.com") 
     let facebookLogin = FBSDKLoginManager() 

     facebookLogin.logInWithReadPermissions(["email"], handler: { 
      (facebookResult, facebookError) -> Void in 
      if facebookError != nil { 
       print("Facebook login failed. Error \(facebookError)") 
      } else if facebookResult.isCancelled { 
       print("Facebook login was cancelled.") 
      } else { 
       let accessToken = FBSDKAccessToken.currentAccessToken().tokenString 
       ref.authWithOAuthProvider("facebook", token: accessToken, 
        withCompletionBlock: { error, authData in 
         if error != nil { 
          print("Login failed. \(error)") 
         } else { 
          print("Logged in! \(authData)") 
         } 
       }) 
      } 
     }) 

    } 


    func loginButton(loginButton: FBSDKLoginButton!, didCompleteWithResult result: FBSDKLoginManagerLoginResult!, error: NSError!) { 
     if error == nil { 
      print("completed login") 
      self.performSegueWithIdentifier("showNew", sender: self) 
     } 

     else { 
      print(error.localizedDescription) 
     } 
    } 


    func loginButtonDidLogOut(loginButton: FBSDKLoginButton!) { 
     print("user logged out") 
    } 

    func loginButtonWillLogin(loginButton: FBSDKLoginButton!) -> Bool { 
     return true 
    } 

} 
+1

サイレント警告http://stackoverflow.com/questions/32048964/fbsdkloginmanager-code-from-objective-のチェックこれをc-to-swift/32049197#32049197 –

+1

Facebookにもう1つのパラメータが追加されました:http://stackoverflow.com/a/33208089/3202193この回答を確認します –

答えて

0

(私には警告なしでコンパイル)のようなものを試してみてください:

let currentToken = FBSDKAccessToken.currentAccessToken() 

    // Show login only if we had not logged in before 
    if (currentToken == nil || !currentToken.hasGranted("email")) { 

     let ref = Firebase(url: "https://my-app.firebaseio.com") 
     let facebookLogin = FBSDKLoginManager() 
     facebookLogin.logInWithReadPermissions(["email"], fromViewController: self, handler: { 
      (facebookResult, facebookError) -> Void in 
      if facebookError != nil { 
       log.error("Facebook login failed. Error \(facebookError)") 
. 
. 
. 
+0

うん、それはうまくいくようです。ありがとう! – user3708224