2016-07-21 11 views
8

Firebase v3 Reference Guide oznacza, że ​​createUserWithEmailAndPassword(email, password) zwraca firebase.Promise zawierający non-null firebase.User.Firebase v3 createUserWithEmailAndPassword. Then Promise

Firebase v3 Authenticate with Firebase using Password-Based Accounts Guide pokazuje następujący przykład

firebase.auth().createUserWithEmailAndPassword(email, password).catch(function(error) { 
    // Handle Errors here. 
    var errorCode = error.code; 
    var errorMessage = error.message; 
    // ... 
}); 

Moje pytanie brzmi, chcę odpalić funkcję, która dodaje użytkownika do mojego węzła users w moim Realtime Database. Chcę dołączyć wyświetlaną nazwę użytkownika, którą wybrałem z formularza rejestracji witryn. Tak więc wygląda na to, że chcę zrobić .then i jeśli metoda createUserWithEmailAndPassword powiodła się, chcę uruchomić funkcję zapisującą nowego użytkownika (z wyświetlaną nazwą) do mojego węzła Realtime Database users.

Jak zmodyfikować przykładowy skrypt do stylu .then?

Odpowiedz

19

Oto prawidłowe użycie then() i obsługa błędów z createUserWithEmailAndPassword:

firebase.auth().createUserWithEmailAndPassword(email, password).then(function(user) { 
    var user = firebase.auth().currentUser; 
    logUser(user); // Optional 
}, function(error) { 
    // Handle Errors here. 
    var errorCode = error.code; 
    var errorMessage = error.message; 
}); 

function logUser(user) { 
    var ref = firebase.database().ref("users"); 
    var obj = { 
     "user": user, 
     ... 
    }; 
    ref.push(obj); // or however you wish to update the node 
} 

mam inny przykład here .

1

Sprawdź to trzeba przeczytać ładunek lub migawkę (Firebase terminu)

firebase.auth().createUserWithEmailAndPassword(credentials.email, credentials.password) 
       .then((authData) => { 
        console.log("User created successfully with payload-", authData); 
        //Write code to use authData to add to Users 
       }).catch((_error) => { 
        console.log("Login Failed!", _error); 
       }) 
0

Oto co zrobiłem i zadziałało.

 function registerUsername(email,password,displayName){ 
      firebase.auth().createUserWithEmailAndPassword(email, password).then(function(value) { 
       console.log(value); 
       }).catch(function(error) { 
        console.log(error); 
       }); 
     } 
+0

jeśli czujesz, wtedy można przyjąć jako odpowiedź :) –

+0

@MithunPattankar głosowałem swoją odpowiedź w górę, ale przyjął drugi właśnie BCS łatwiej było mi się czytać. ES6, którego użyłeś, jest ostry, ale nie tak prosty. Dziękuję bardzo za odpowiedź. –