3

Im는 Firebase 내에 사용자를 생성하고 웹 서버의 데이터베이스 내에 사용자 프로파일을 생성하려고합니다. 나는 사용자를 아주 멋지게 만드는 다음 코드를 구현했다. 그러나 나는 (고유 ID에 필요한) 사용자 ID를받는 방법에 대해 확실하지 않아서 데이터베이스 구조를 만들 수 없습니다. createUserWithEmailAndPassword가 호출 될 때 사용자 객체를 반환하는 방법이 있습니까?Firebase 계정 생성 후 사용자 객체 반환하기

나는 firebase.auth().onAuthStateChanged 기능을 구현하기 위해 시도했지만이 웹 응용 프로그램을위한 수집 havn't는 경우 난 후 시간 초과 오류를

을받을 수 있습니다. 당신이해야 할 클라이언트 측에서 사용자 ID 얻기 위하여

<script> 
function createUser() { 
var Result = "true"; 
var textUser = document.getElementById('userName').value; 
var textPassword = document.getElementById('userPassword').value; 
var textAccountID = document.getElementById('accountRef').value; 
var textDateCreated = document.getElementById('dateCreated').value; 
var textDisplayName = document.getElementById('displayName').value; 
var UID; 

firebase.auth().createUserWithEmailAndPassword(textUser, textPassword).catch(function(error) { 
    // Handle Errors here. 
    var errorCode = error.code; 
    var errorMessage = error.message; 
    return Result = "false"; 
    // ... 
}); 

writeUserData(UID, textDisplayName, textAccountID, textDateCreated); 

return Result; 

} 

function writeUserData(userId, displayName, accountID, dateCreated) { 
    firebase.database().ref('User/' + userId).set({ 
    userId:{ 
    AccountID: accountID, 
    Created: dateCreated, 
    Name: displayName} 
    }); 
} 


</script> 

답변

12

:

firebase.auth().createUserWithEmailAndPassword(textUser, textPassword) 
.then(function(user){ 
    console.log('uid',user.uid) 

    //Here if you want you can sign in the user 
}).catch(function(error) { 
    //Handle error 
}); 

그것을 여기에 설명과 같이

https://firebase.google.com/docs/reference/js/firebase.auth.Auth#createUserWithEmailAndPassword

반환 null이 아닌 firebase.Null이 아닌 firebase을 포함한 경고. 사용자

+0

doc에서 "사용자 계정을 만들면이 사용자는 응용 프로그램에도 로그인됩니다." –

+0

정확함 ... 이전 버전에서 변경하지 않은 변경 ... – Ymmanuel

+0

그래, 그 동작이 완전히 변경되었습니다. 나는 항상 그것에 물린다. –

1

createUserWithEmailAndPassword() 함수는 catch()then() 메서드를 갖는 이른바 약속을 반환합니다. 문제를 처리하기 위해 이미 catch()을 사용하고 있습니다. "비 문제"를 처리하기 위해, 당신은 then()를 사용해야합니다 :

firebase.auth().createUserWithEmailAndPassword(textUser, textPassword) 
.then(function(user) { 
    console.log(user); // see https://firebase.google.com/docs/reference/js/firebase.User 
}) 
.catch(function(error) { 
    // Handle Errors here. 
    var errorCode = error.code; 
    var errorMessage = error.message; 
    return Result = "false"; 
    // ... 
}); 

createUserWithEmailAndPasswordfirebase.User의 참조 설명서를 참조하십시오.

+1

님께 서 위의 내용을 구현하는 auth/network-request-failed 오류가 발생했습니다. 디버깅은 약속이 호출되지 않는다고 제안합니다. – PowerMan2015