2016-03-15 1 views
1

Я воспользовался электронной почтой и Facebook в моем приложении, используя firebase. Мой код, как показано ниже:Данные для входа в Facebook Facebook не отображаются в консоли firebase

Для фб логин:

FireBaseHelper.fireBaseHelper.BASE_REF.authWithOAuthProvider("facebook", token: "123") { (error, data) -> Void in 

     APP_DELEGATE.hideActivityIndicator() 
     if error != nil { 
      print(error) 
      self.loginErrorAlert("Oops!", message: "Check your username and password.") 
     } else { 

      // Be sure the correct uid is stored. 

      NSUserDefaults.standardUserDefaults().setValue(data.uid, forKey: "uid") 

      // Enter the app! 

      self.performSegueWithIdentifier("CurrentlyLoggedIn", sender: nil) 
     } 
    } 

Для подписка на рассылку:

 let username = usernameField.text 
    let email = emailField.text 
    let password = passwordField.text 

    if username != "" && email != "" && password != "" { 

     APP_DELEGATE.showActivityIndicator() 

     FireBaseHelper.fireBaseHelper.BASE_REF.createUser(email, password: password, withValueCompletionBlock: { error, result in 



      if error != nil { 
       APP_DELEGATE.hideActivityIndicator() 
       // There was a problem. 
       self.signupErrorAlert("Oops!", message: "Having some trouble creating your account. Try again.") 

      } else { 

       // Create and Login the New User with authUser 
       FireBaseHelper.fireBaseHelper.BASE_REF.authUser(email, password: password, withCompletionBlock: { 
        err, authData in 

        let user = ["provider": authData.provider!, "email": email!, "username": username!] 

         FireBaseHelper.fireBaseHelper.USER_REF.childByAppendingPath(authData.uid).setValue(user, withCompletionBlock: { (error, firebase) -> Void in 

         if error != nil { 
          APP_DELEGATE.hideActivityIndicator() 
          self.signupErrorAlert("Oops!", message: "Having some trouble creating your account. Try again.") 

         }else 
         { 
          APP_DELEGATE.hideActivityIndicator() 
          // Store the uid for future access - handy! 
          NSUserDefaults.standardUserDefaults().setValue(result ["uid"], forKey: "uid") 

          // Enter the app. 
          self.performSegueWithIdentifier("NewUserLoggedIn", sender: nil) 

         } 
         }) 
       }) 
      } 
     }) 

    }else 
    { 
     signupErrorAlert("Oops!", message: "Don't forget to enter your email, password, and a username.") 
    } 

И вспомогательный класс код:

class FireBaseHelper: NSObject { 

    static let fireBaseHelper = FireBaseHelper() 

    private var _BASE_REF = Firebase(url: "https://poc-demoApp.firebaseio.com") 
    private var _USER_REF = Firebase(url: "https://poc-demoApp.firebaseio.com/users") 
var BASE_REF: Firebase { 
     return _BASE_REF 
    } 

    var USER_REF: Firebase { 
     return _USER_REF 
    } 

var CURRENT_USER_REF: Firebase { 
     let userID = NSUserDefaults.standardUserDefaults().valueForKey("uid") as! String 

     let currentUser = Firebase(url: "\(BASE_REF)").childByAppendingPath("users").childByAppendingPath(userID) 

     return currentUser! 
    } 
} 

Проблема заключается в том, когда я зарегистрироваться с пользователем электронной почты я могу видеть данные пользователя на панели мониторинга firebase, и когда я регистрирую fb, данные пользователя не вытесняются aying на приборной панели, дайте мне знать, что такое проблема. Что-нибудь я пропустил? Его показ fb регистрации успешно

ответ

3

Firebase хранит список пользователей электронной почты + пароль. Он не хранит данные для пользователей вашего приложения, которые подписаны с социальными поставщиками (такими как Facebook). Поэтому нет ничего, что можно было бы показать на панели Firebase для этих пользователей.

Если вы хотите сохранить информацию о пользователях Facebook в своей базе данных, см. Раздел на странице storing user data.

+0

Ты конечно? Я застрял в получении электронной почты и еще чего-то. –

0

Я столкнулся с одной и той же проблемой, и я узнал, что после того, как пользователь успешно подписался с Facebook, вам нужно получить токен доступа для входа в систему, обменять его на учетные данные Firebase и, наконец, пройти аутентификацию с помощью Firebase, используя учетные данные Firebase.

Вот пример (не забудьте импортировать FBSDKLoginKit и FirebaseAuth библиотеки):

let credential = FacebookAuthProvider.credential(withAccessToken: FBSDKAccessToken.current().tokenString) 

Auth.auth().signIn(with: credential) { (user, error) in 
     if let error = error { 
     print("Facebook authentication with Firebase error: ", error) 
     return 
     } 
     print("User signed in!") // After this line the Facebook login should appear on your Firebase console 
    } 

Вот снимок экрана консоли после того, как Facebook логин:

enter image description here

Смежные вопросы