2016-06-20 6 views
6

Jak mogę dodać dodatkowy numer telefonu i adres do tego zestawu danych? Wygląda na to, że dokumentacja Firebase niczego nie określa.Jak dodać dodatkowe informacje do firebase.auth()

I wprowadziły logowania, rejestrowania i aktualizacji przy użyciu firebase.auth()

logowanie:

//Email Login 
firebase.auth().signInWithEmailAndPassword(email, password).then(
    ok => { 
     console.log("Logged in User",ok.user);    
    }, 
    error => { 
     console.log("email/pass sign in error", error); 
    } 
); 

Rejestracja:

//Sign Up 
firebase.auth().createUserWithEmailAndPassword(email, password).then(
    ok => { 
     console.log("Register OK", ok); 
    }, 
    error => { 
     console.log("Register error", error); 
    } 
) 

UPDATE:

//User Authentication 
firebase.auth().onAuthStateChanged(function(user) { 
    if (user) { 
    $scope.data=user; 
    } else { 
    // No user, Redirect to login page 
    } 
}); 

//Save Function 
$scope.save=function(values){ 

    $scope.data.updateProfile({ 

     displayName: "Test User", 
     email: "[email protected]", 
    /* phone: 123412341, 
     address: "Temp Address",*/ 
     photoURL: "www.example.com/profile/img.jpg" 

    }).then(function() { 

    // Update successful. 

    }, function(error) { 

    // An error happened. 

    }); 

}; 
+0

proszę, jeśli odpowiedź rozwiązałeś swój problem, zaakceptuj to, aby inni ludzie znali rozwiązanie. Również, daj mi znać, jeśli masz dalsze pytania :) –

+0

To jest ładne wdrożenie: http://stackoverflow.com/questions/32151178/how-do-you-include-a-username-when-storing-email- i-password-using-firebase-ba –

+0

Tak, to jest implementacja Firebase. Ale jest ograniczona tylko do tych właściwości: https://firebase.google.com/docs/reference/ios/firebaseauth/interface_f_i_r_user#properties W linku, który zamieściłem w komentarzu do mojej odpowiedzi, mówią o tym;) –

Odpowiedz

3

O ile mi wiadomo, musisz samodzielnie zarządzać profilami użytkowników, jeśli chcesz mieć więcej pól niż domyślny użytkownik udostępniany przez Firebase.

Możesz to zrobić, tworząc odniesienie w Firebase, aby zachować wszystkie profile użytkowników.

users: { 
    "userID1": { 
    "name":"user 1", 
    "gender": "male" 
    }, 
    "userID2": { 
    "name":"user 2", 
    "gender": "female" 
    } 
} 

Można użyć onAuthStateChanged wykryć, gdy użytkownik jest zalogowany, a jeśli jest to można użyć once() do pobierania danych użytkownika

firebaseRef.child('users').child(user.uid).once('value', callback) 

Nadzieja pomaga

+0

Obecnie jest to dobre rozwiązanie. Ale byłbym zadowolony wiedząc, czy istnieją lepsze rozwiązania dla tego samego –

+1

Jest to sugerowany sposób, aby to zrobić. Lepszym rozwiązaniem może być rozwiązanie, które lepiej odpowiada Twoim potrzebom. Powinieneś uporządkować swoje dane w zależności od tego, jak chcesz je odzyskać. Na przykład, jeśli chcesz zachować pewne informacje w tajemnicy, możesz to zrobić: "userId": {"credit-card": "0000", "public": {"name": "Devid", "genere": "dragon" }} i użyj reguł bezpieczeństwa, aby inni użytkownicy mogli tylko czytać "publiczny" węzeł. Mam nadzieję, że to pomaga :) Jestem tutaj dla jakiegokolwiek innego pytania –

+0

Ta odpowiedź może być pomocna: http://stackoverflow.com/a/37420701/4695325 –