2016-08-04 13 views
1

zu speichern Ich verbinde meine Anwendung mit Facebook und Google Firebase. Ich habe alle Schritte befolgt und alles funktioniert gut, aber die in Firebase Google generierte Datenbank ist leer. Muss ich die Realtime-Datenbank verwenden und die FB-Benutzerdaten programmgesteuert speichern? oder FB-Benutzerinformationen werden automatisch in der Firebase-Datenbank gespeichert, wenn Sie angemeldet sind. Als Referenz: https://firebase.google.com/docs/auth/ios/facebook-loginNicht möglich, Facebook-Benutzerdaten in Google Firebase

-(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

Durch die Anmeldung bei der Firebase-Authentifizierung werden der Firebase-Datenbank nicht automatisch Informationen über den Benutzer hinzugefügt. Wenn Sie solche Informationen speichern möchten, müssen Sie dies selbst über Ihren Code tun. –

+0

Danke @FrankvanPuffelen. – WasimSafdar

Antwort

1

... sorry ich das gerade bearbeitet als ich erkannte, den Sie verwenden JavaScript nicht. Ich werde die Antwort jedoch verlassen, da es immer noch helfen könnte.

Warten Sie, bis Sie zur passwortbasierten Authentifizierung gelangen. Hier beginnt der wahre Spaß! :-)

Die Sache über Facebook ist, dass sie Ihnen die E-Mail-Adresse des Benutzers standardmäßig nicht geben. Ich glaube, dass Sie Zugang dazu über ihr Entwicklerportal anfordern können. Andere Anbieter stellen E-Mails bereit.

In Bezug auf die Speicherung von displayName, PhotoURL und/oder E-Mail speichern Sie diese im Auth-System, und dieses System speichert die Datenserverseite, ... für Kennwortkonten. oAuth-Konten ziehen diese Daten bei der Anmeldung, damit sie nicht veraltet werden.

Ich habe eine funktionierende Webauthentifizierungskarte, die Ihnen einen Vorsprung geben wird. Es ist um https://github.com/rhroyston/firebase-auth.

Unten ist, wie man einen passwortbasierten Benutzer in einem Durchgang tut.

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 + '.'); 
    } 
Verwandte Themen