2016-08-04 8 views
1

FacebookとGoogle Firebaseでアプリケーションを接続しています。私はすべての手順を踏んで、うまくいっていますが、Firebase Googleで生成されたデータベースは空です。私はリアルタイムデータベースを使用し、FBユーザーデータをプログラムで保存する必要がありますか?またはFBユーザ情報は、ログインしたときFirebaseデータベースに自動的に保存されます。参考のために:私はJavaScriptを使用していない実現として https://firebase.google.com/docs/auth/ios/facebook-loginGoogleのfirebaseにFacebookのユーザーデータを保存できません

-(void)loginButton:(FBSDKLoginButton *)loginButton didCompleteWithResult:(FBSDKLoginManagerLoginResult *)result error:(NSError *)error 
{ 

    if (error == nil) { 

     FIRAuthCredential *credential = [FIRFacebookAuthProvider 
             credentialWithAccessToken:[FBSDKAccessToken currentAccessToken] 
             .tokenString]; 

     [[FIRAuth auth] signInWithCredential:credential 
            completion:^(FIRUser *user, NSError *error) { 
             // ... 
            }]; 
    } else { 

     NSLog(@"%@", error.localizedDescription); 
    } 

} 
- (IBAction)FBLogin:(id)sender { 

    FBSDKLoginManager *login = [[FBSDKLoginManager alloc] init]; 

    [login 
    logInWithReadPermissions: @[@"public_profile", @"email", @"user_friends",@"user_birthday",@"user_location"] 
    fromViewController:self 

    handler:^(FBSDKLoginManagerLoginResult *result, NSError *error) { 
     if (error) { 
      NSLog(@"Process error"); 
     } else if (result.isCancelled) { 
      NSLog(@"Cancelled"); 
     } else { 
      NSLog(@"Logged in"); 
      [self performSegueWithIdentifier:@"GotoMainMenu" sender:self]; 
     } 
    }]; 
} 
+1

Firebase認証でログインすると、Firebaseデータベースにユーザに関する情報は自動的に追加されません。そのような情報を保存したい場合は、コードから自分で行う必要があります。 –

+0

ありがとう@FrankvanPuffelen。 – WasimSafdar

答えて

1

...申し訳ありませんが、私はちょうどこれを編集しました。私は答えを残しておきますが、まだ助けているかもしれません。パスワードベースの認証を取得するまで

を待ちます。それが本当の楽しみが始まる場所です! :-)

のFacebookについての事は、彼らは、デフォルトであなたにユーザーの電子メールを与えていないです。彼らの開発者ポータルからでもアクセスをリクエストできると思います。他のプロバイダは電子メールを提供しています。 displayName、photoURL、および/または電子メールを保存するという点で

は、あなたが認証システムでそれらを保存DOおよびそのシステムは、パスワードのアカウントのために...、データサーバ側を覚えています。 oAuthアカウントはログイン時にこのデータをプルするので、古いデータは失効しません。

私はあなたにヘッドスタートを与える作業のWeb認証定型を持っています。それはhttps://github.com/rhroyston/firebase-authにあります。以下は

は、1回のパスでパスワードベースのユーザーを行う方法です。

function registerPasswordUser(email,displayName,password,photoURL){ 
    var user = null; 
    //NULLIFY EMPTY ARGUMENTS 
    for (var i = 0; i < arguments.length; i++) { 
     arguments[i] = arguments[i] ? arguments[i] : null; 
    } 
    auth.createUserWithEmailAndPassword(email, password) 
    .then(function() { 
     user = auth.currentUser; 
     user.sendEmailVerification(); 
    }) 
    .then(function() { 
     user.updateProfile({ 
     displayName: displayName, 
     photoURL: photoURL 
     }); 
    }) 
    .catch(function(error) { 
     console.log(error.message,7000); 
    }); 
    console.log('Validation link was sent to ' + email + '.'); 
    } 
関連する問題